diff options
author | Joseph Powers <jpowers27@cox.net> | 2011-07-07 19:10:14 -0700 |
---|---|---|
committer | Joseph Powers <jpowers27@cox.net> | 2011-07-07 19:16:58 -0700 |
commit | b1fdf9dc77de7be1d23e0c84ebad934ee6a398b7 (patch) | |
tree | a59945b45e92e7ee787a320e321575627f03da7c | |
parent | 2d360f03978c310371c5565bdb6b94595ef189b8 (diff) |
Replace List with std::vector< INetMessageHeader* >
-rw-r--r-- | tools/inc/tools/inetmsg.hxx | 64 | ||||
-rw-r--r-- | tools/source/inet/inetmsg.cxx | 23 |
2 files changed, 46 insertions, 41 deletions
diff --git a/tools/inc/tools/inetmsg.hxx b/tools/inc/tools/inetmsg.hxx index 26a650df9635..24928cf0c335 100644 --- a/tools/inc/tools/inetmsg.hxx +++ b/tools/inc/tools/inetmsg.hxx @@ -36,6 +36,7 @@ #include <tools/inetmime.hxx> #include <tools/stream.hxx> #include <tools/string.hxx> +#include <vector> class DateTime; @@ -108,13 +109,14 @@ public: * INetMessage Interface. * *=====================================================================*/ + typedef ::std::vector< INetMessageHeader* > HeaderList_impl; class INetMessage { - List m_aHeaderList; + HeaderList_impl m_aHeaderList; - sal_uIntPtr m_nDocSize; - UniString m_aDocName; - SvLockBytesRef m_xDocLB; + sal_uIntPtr m_nDocSize; + UniString m_aDocName; + SvLockBytesRef m_xDocLB; void ListCleanup_Impl (void); void ListCopy (const INetMessage& rMsg); @@ -123,38 +125,36 @@ protected: UniString GetHeaderName_Impl ( sal_uIntPtr nIndex, rtl_TextEncoding eEncoding) const { - INetMessageHeader *p = - (INetMessageHeader*)(m_aHeaderList.GetObject(nIndex)); - if (p) - return UniString(p->GetName(), eEncoding); - else + if ( nIndex < m_aHeaderList.size() ) { + return UniString( m_aHeaderList[ nIndex ]->GetName(), eEncoding ); + } else { return UniString(); + } } UniString GetHeaderValue_Impl ( sal_uIntPtr nIndex, INetMIME::HeaderFieldType eType) const { - INetMessageHeader *p = - (INetMessageHeader*)(m_aHeaderList.GetObject(nIndex)); - if (p) - return INetMIME::decodeHeaderFieldBody (eType, p->GetValue()); - else + if ( nIndex < m_aHeaderList.size() ) { + return INetMIME::decodeHeaderFieldBody(eType, m_aHeaderList[ nIndex ]->GetValue()); + } else { return UniString(); + } } void SetHeaderField_Impl ( const INetMessageHeader &rHeader, sal_uIntPtr &rnIndex) { INetMessageHeader *p = new INetMessageHeader (rHeader); - if (m_aHeaderList.Count() <= rnIndex) + if (m_aHeaderList.size() <= rnIndex) { - m_aHeaderList.Insert (p, LIST_APPEND); - rnIndex = m_aHeaderList.Count() - 1; + rnIndex = m_aHeaderList.size(); + m_aHeaderList.push_back( p ); } else { - p = (INetMessageHeader*)(m_aHeaderList.Replace(p, rnIndex)); - delete p; + delete m_aHeaderList[ rnIndex ]; + m_aHeaderList[ rnIndex ] = p; } } @@ -188,7 +188,7 @@ public: return *this; } - sal_uIntPtr GetHeaderCount (void) const { return m_aHeaderList.Count(); } + sal_uIntPtr GetHeaderCount (void) const { return m_aHeaderList.size(); } UniString GetHeaderName (sal_uIntPtr nIndex) const { @@ -202,21 +202,23 @@ public: INetMessageHeader GetHeaderField (sal_uIntPtr nIndex) const { - INetMessageHeader *p = - (INetMessageHeader*)(m_aHeaderList.GetObject(nIndex)); - if (p) - return INetMessageHeader(*p); - else + if ( nIndex < m_aHeaderList.size() ) { + return INetMessageHeader( *m_aHeaderList[ nIndex ] ); + } else { return INetMessageHeader(); + } } sal_uIntPtr SetHeaderField ( const UniString& rName, const UniString& rValue, - sal_uIntPtr nIndex = LIST_APPEND); + sal_uIntPtr nIndex = ((sal_uIntPtr)-1) + ); virtual sal_uIntPtr SetHeaderField ( - const INetMessageHeader &rField, sal_uIntPtr nIndex = LIST_APPEND); + const INetMessageHeader &rField, + sal_uIntPtr nIndex = ((sal_uIntPtr)-1) + ); sal_uIntPtr GetDocumentSize (void) const { return m_nDocSize; } void SetDocumentSize (sal_uIntPtr nSize) { m_nDocSize = nSize; } @@ -287,7 +289,9 @@ public: using INetMessage::SetHeaderField; virtual sal_uIntPtr SetHeaderField ( - const INetMessageHeader &rHeader, sal_uIntPtr nIndex = LIST_APPEND); + const INetMessageHeader &rHeader, + sal_uIntPtr nIndex = ((sal_uIntPtr)-1) + ); /** Header fields. */ @@ -489,7 +493,9 @@ public: using INetRFC822Message::SetHeaderField; virtual sal_uIntPtr SetHeaderField ( - const INetMessageHeader &rHeader, sal_uIntPtr nIndex = LIST_APPEND); + const INetMessageHeader &rHeader, + sal_uIntPtr nIndex = ((sal_uIntPtr)-1) + ); /** Header fields. */ diff --git a/tools/source/inet/inetmsg.cxx b/tools/source/inet/inetmsg.cxx index 13ff543358ab..776df97e75db 100644 --- a/tools/source/inet/inetmsg.cxx +++ b/tools/source/inet/inetmsg.cxx @@ -64,7 +64,6 @@ inline sal_Unicode ascii_toLowerCase( sal_Unicode ch ) * *=====================================================================*/ #define CONSTASCII_STRINGPARAM(a) (a), RTL_TEXTENCODING_ASCII_US -#define HEADERFIELD INetMessageHeader /* * ~INetMessage. @@ -80,10 +79,10 @@ INetMessage::~INetMessage (void) void INetMessage::ListCleanup_Impl (void) { // Cleanup. - sal_uIntPtr i, n = m_aHeaderList.Count(); + sal_uIntPtr i, n = m_aHeaderList.size(); for (i = 0; i < n; i++) - delete ((HEADERFIELD*)(m_aHeaderList.GetObject(i))); - m_aHeaderList.Clear(); + delete m_aHeaderList[ i ]; + m_aHeaderList.clear(); } /* @@ -100,8 +99,8 @@ void INetMessage::ListCopy (const INetMessage &rMsg) sal_uIntPtr i, n = rMsg.GetHeaderCount(); for (i = 0; i < n; i++) { - HEADERFIELD *p = (HEADERFIELD*)(rMsg.m_aHeaderList.GetObject(i)); - m_aHeaderList.Insert (new HEADERFIELD(*p), LIST_APPEND); + INetMessageHeader *p = rMsg.m_aHeaderList[ i ]; + m_aHeaderList.push_back( new INetMessageHeader(*p) ); } } } @@ -156,11 +155,11 @@ SvStream& INetMessage::operator<< (SvStream& rStrm) const rStrm << static_cast<sal_uInt32>(m_nDocSize); rStrm.WriteByteString (m_aDocName, RTL_TEXTENCODING_UTF8); - sal_uIntPtr i, n = m_aHeaderList.Count(); + sal_uIntPtr i, n = m_aHeaderList.size(); rStrm << static_cast<sal_uInt32>(n); for (i = 0; i < n; i++) - rStrm << *((HEADERFIELD *)(m_aHeaderList.GetObject(i))); + rStrm << *( m_aHeaderList[ i ] ); return rStrm; } @@ -188,9 +187,9 @@ SvStream& INetMessage::operator>> (SvStream& rStrm) for (i = 0; i < n; i++) { - HEADERFIELD *p = new HEADERFIELD(); + INetMessageHeader *p = new INetMessageHeader(); rStrm >> *p; - m_aHeaderList.Insert (p, LIST_APPEND); + m_aHeaderList.push_back( p ); } // Done. @@ -740,7 +739,7 @@ sal_uIntPtr INetRFC822Message::SetHeaderField ( case INETMSG_RFC822_OK: pData = pStop; SetHeaderField_Impl ( - HEADERFIELD (HDR(nIdx), rHeader.GetValue()), + INetMessageHeader (HDR(nIdx), rHeader.GetValue()), m_nIndex[nIdx]); nNewIndex = m_nIndex[nIdx]; break; @@ -1186,7 +1185,7 @@ sal_uIntPtr INetMIMEMessage::SetHeaderField ( case INETMSG_MIME_OK: pData = pStop; SetHeaderField_Impl ( - HEADERFIELD (MIMEHDR(nIdx), rHeader.GetValue()), + INetMessageHeader (MIMEHDR(nIdx), rHeader.GetValue()), m_nIndex[nIdx]); nNewIndex = m_nIndex[nIdx]; break; |