diff options
author | 2013-07-01 23:53:34 -0700 | |
---|---|---|
committer | 2013-07-01 23:53:34 -0700 | |
commit | 08d731fc900a40142d6d5d2b2e62ec0fb46e2eea (patch) | |
tree | 18fde1c188bef94ad36d9066c85b8104f2883e4a /src/core/abstract | |
parent | 6280c6a3d1daad83b8054730d430edbc91bc6d2d (diff) |
Fixes for PR feedback
* Reverts MCHashMap changes, uses mc_foreachdictionaryKeyAndValue
* Adds getter for mExtraHeaders to MessageHeader
* Adds removeHeader
* Tweaks method names
Diffstat (limited to 'src/core/abstract')
-rw-r--r-- | src/core/abstract/MCMessageHeader.cc | 30 | ||||
-rw-r--r-- | src/core/abstract/MCMessageHeader.h | 7 |
2 files changed, 22 insertions, 15 deletions
diff --git a/src/core/abstract/MCMessageHeader.cc b/src/core/abstract/MCMessageHeader.cc index a91396e5..76b52e55 100644 --- a/src/core/abstract/MCMessageHeader.cc +++ b/src/core/abstract/MCMessageHeader.cc @@ -299,16 +299,26 @@ void MessageHeader::setExtraHeaders(HashMap * headers) { MC_SAFE_REPLACE_COPY(HashMap, mExtraHeaders, headers); } -void MessageHeader::addHeader(String * header, String * value) { - if (!mExtraHeaders) { +HashMap * MessageHeader::extraHeaders() { + return mExtraHeaders; +} + +void MessageHeader::addHeader(String * name, String * object) { + if (mExtraHeaders == NULL) { mExtraHeaders = new HashMap(); } - mExtraHeaders->setObjectForKey(header, value); + mExtraHeaders->setObjectForKey(name, object); } -String * MessageHeader::getHeader(String *header) { +void MessageHeader::removeHeader(String * name) { + if (mExtraHeaders != NULL) { + mExtraHeaders->removeObjectForKey(name); + } +} + +String * MessageHeader::headerForName(String * name) { if (mExtraHeaders) { - return (String *)mExtraHeaders->objectForKey(header); + return (String *)mExtraHeaders->objectForKey(name); } return NULL; } @@ -845,16 +855,10 @@ struct mailimf_fields * MessageHeader::createIMFFieldsAndFilterBcc(bool filterBc } if (mExtraHeaders != NULL) { - HashMapIter *iter; - - for (iter = mExtraHeaders->iteratorBegin(); iter != NULL; iter = mExtraHeaders->iteratorNext(iter)) { + mc_foreachdictionaryKeyAndValue(String, header, String, value, mExtraHeaders) { struct mailimf_field * field; - String * key; - String * value; - key = (String *)iter->key; - value = (String *)iter->value; - field = mailimf_field_new_custom(strdup(key->UTF8Characters()), strdup(value->UTF8Characters())); + field = mailimf_field_new_custom(strdup(header->UTF8Characters()), strdup(value->UTF8Characters())); mailimf_fields_add(fields, field); } } diff --git a/src/core/abstract/MCMessageHeader.h b/src/core/abstract/MCMessageHeader.h index b48c461e..0056028e 100644 --- a/src/core/abstract/MCMessageHeader.h +++ b/src/core/abstract/MCMessageHeader.h @@ -55,9 +55,12 @@ namespace mailcore { virtual void setUserAgent(String * userAgent); virtual String * userAgent(); - virtual void addHeader(String *header, String *value); virtual void setExtraHeaders(HashMap *headers); - virtual String * getHeader(String *header); + virtual HashMap * extraHeaders(); + + virtual void addHeader(String *name, String * value); + virtual void removeHeader(String *name); + virtual String * headerForName(String *name); String * extractedSubject(); virtual String * partialExtractedSubject(); |