diff options
Diffstat (limited to 'src/headerFieldFactory.cpp')
-rw-r--r-- | src/headerFieldFactory.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/headerFieldFactory.cpp b/src/headerFieldFactory.cpp index e1c725c0..7e021f59 100644 --- a/src/headerFieldFactory.cpp +++ b/src/headerFieldFactory.cpp @@ -126,7 +126,7 @@ ref <headerFieldValue> headerFieldFactory::createValue(const string& fieldName) ref <headerFieldValue> value = NULL; if (pos != m_valueMap.end()) - value = ((*pos).second)(); + value = ((*pos).second.allocFunc)(); else value = registerer <headerFieldValue, text>::creator(); @@ -134,5 +134,18 @@ ref <headerFieldValue> headerFieldFactory::createValue(const string& fieldName) } +bool headerFieldFactory::isValueTypeValid + (const headerField& field, const headerFieldValue& value) const +{ + ValueMap::const_iterator pos = m_valueMap.find + (utility::stringUtils::toLower(field.getName())); + + if (pos != m_valueMap.end()) + return ((*pos).second.checkTypeFunc)(value); + + return true; // No info on this field +} + + } // vmime |