aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/abstract
diff options
context:
space:
mode:
authorGravatar Ryan Johnson <ryan@iambismark.net>2013-07-01 23:53:34 -0700
committerGravatar Ryan Johnson <ryan@iambismark.net>2013-07-01 23:53:34 -0700
commit08d731fc900a40142d6d5d2b2e62ec0fb46e2eea (patch)
tree18fde1c188bef94ad36d9066c85b8104f2883e4a /src/core/abstract
parent6280c6a3d1daad83b8054730d430edbc91bc6d2d (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.cc30
-rw-r--r--src/core/abstract/MCMessageHeader.h7
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();