Kaydet (Commit) 54ddc13b authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Fold INetMIMEStringOutputSink into INetMIMEOutputSink base

Change-Id: I675e656b57fca90e42be2d924c102a995168984d
üst 717de023
......@@ -632,16 +632,15 @@ public:
private:
sal_uInt32 m_nColumn;
sal_uInt32 m_nLineLengthLimit;
OStringBuffer m_aBuffer;
protected:
/** Write a sequence of octets.
@param pBegin Points to the start of the sequence, must not be null.
@param pEnd Points past the end of the sequence, must be >= pBegin.
*/
virtual void writeSequence(const sal_Char * pBegin,
const sal_Char * pEnd) = 0;
void writeSequence(const sal_Char * pBegin, const sal_Char * pEnd);
/** Write a null terminated sequence of octets (without the terminating
null).
......@@ -667,11 +666,11 @@ protected:
const sal_Unicode * pEnd);
public:
INetMIMEOutputSink(sal_uInt32 nTheColumn, sal_uInt32 nTheLineLengthLimit):
INetMIMEOutputSink(
sal_uInt32 nTheColumn = 0,
sal_uInt32 nTheLineLengthLimit= INetMIME::SOFT_LINE_LENGTH_LIMIT):
m_nColumn(nTheColumn), m_nLineLengthLimit(nTheLineLengthLimit) {}
virtual ~INetMIMEOutputSink() {}
/** Get the current column.
@return The current column (starting from zero).
......@@ -737,6 +736,11 @@ public:
*/
void writeLineEnd();
OString takeBuffer()
{
return m_aBuffer.makeStringAndClear();
}
/** A manipulator function that writes a line end (CR LF).
@param rSink Some sink.
......@@ -785,27 +789,6 @@ inline void INetMIME::writeEscapeSequence(INetMIMEOutputSink & rSink,
<< sal_uInt8(getHexDigit(nChar & 15));
}
class INetMIMEStringOutputSink: public INetMIMEOutputSink
{
OStringBuffer m_aBuffer;
using INetMIMEOutputSink::writeSequence;
virtual void writeSequence(const sal_Char * pBegin,
const sal_Char * pEnd) SAL_OVERRIDE;
public:
inline INetMIMEStringOutputSink(sal_uInt32 nColumn = 0,
sal_uInt32 nLineLengthLimit
= INetMIME::SOFT_LINE_LENGTH_LIMIT):
INetMIMEOutputSink(nColumn, nLineLengthLimit) {}
OString takeBuffer()
{
return m_aBuffer.makeStringAndClear();
}
};
class INetMIMEEncodedWordOutputSink
{
public:
......
......@@ -861,7 +861,7 @@ sal_Unicode const * INetMIME::scanParameters(sal_Unicode const * pBegin,
}
if (pParameters)
{
INetMIMEStringOutputSink
INetMIMEOutputSink
aSink(0, INetMIMEOutputSink::NO_LINE_LENGTH_LIMIT);
while (p != pEnd)
{
......@@ -890,7 +890,7 @@ sal_Unicode const * INetMIME::scanParameters(sal_Unicode const * pBegin,
else if (p != pEnd && *p == '"')
if (pParameters)
{
INetMIMEStringOutputSink
INetMIMEOutputSink
aSink(0, INetMIMEOutputSink::NO_LINE_LENGTH_LIMIT);
bool bInvalid = false;
for (++p;;)
......@@ -2838,9 +2838,15 @@ OUString INetMIME::decodeHeaderFieldBody(HeaderFieldType eType,
return sDecoded;
}
// INetMIMEOutputSink
void INetMIMEOutputSink::writeSequence(const sal_Char * pBegin,
const sal_Char * pEnd)
{
OSL_ENSURE(pBegin && pBegin <= pEnd,
"INetMIMEOutputSink::writeSequence(): Bad sequence");
m_aBuffer.append(pBegin, pEnd - pBegin);
}
// virtual
sal_Size INetMIMEOutputSink::writeSequence(const sal_Char * pSequence)
{
sal_Size nLength = rtl_str_getLength(pSequence);
......@@ -2848,7 +2854,6 @@ sal_Size INetMIMEOutputSink::writeSequence(const sal_Char * pSequence)
return nLength;
}
// virtual
void INetMIMEOutputSink::writeSequence(const sal_Unicode * pBegin,
const sal_Unicode * pEnd)
{
......@@ -2874,18 +2879,6 @@ void INetMIMEOutputSink::writeLineEnd()
m_nColumn = 0;
}
// INetMIMEStringOutputSink
// virtual
void INetMIMEStringOutputSink::writeSequence(const sal_Char * pBegin,
const sal_Char * pEnd)
{
OSL_ENSURE(pBegin && pBegin <= pEnd,
"INetMIMEStringOutputSink::writeSequence(): Bad sequence");
m_aBuffer.append(pBegin, pEnd - pBegin);
}
// INetMIMEEncodedWordOutputSink
static const sal_Char aEscape[128]
......
......@@ -46,7 +46,7 @@ void INetMIMEMessage::SetHeaderField_Impl (
const OUString &rValue,
sal_uIntPtr &rnIndex)
{
INetMIMEStringOutputSink aSink (0, 32767); /* weird the mime standard says that aline MUST not be longeur that 998 */
INetMIMEOutputSink aSink (0, 32767); /* weird the mime standard says that aline MUST not be longeur that 998 */
INetMIME::writeHeaderFieldBody (
aSink, eType, rValue, osl_getThreadTextEncoding(), false);
SetHeaderField_Impl (
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment