A base class for smart maps providing methods for importing and exporting values, among others.
More...
|
| SmartMap (char separator='\0', char arraySeparator=':') |
|
| SmartMap (const SmartMap &smap) |
|
virtual void | clear () |
|
bool | hasKey (const std::string &key) const |
|
std::string | get (const std::string &key, const std::string &defaultValue) const |
| Retrieves a value, or default value if value is unset. More...
|
|
std::string | get (const std::string &key, const char *defaultValue) const |
|
template<class T2 > |
T2 | get (const std::string &key, const T2 &defaultValue) const |
| Retrieves a value, if set, else returns the given default value. More...
|
|
virtual T & | operator[] (const std::string &key) |
| Returns an element. Creates one, conditionally. More...
|
|
virtual const T & | operator[] (const std::string &key) const |
| Unlike with std::map, operator[] const is defined, returning reference to a static empty instance.
|
|
virtual const keylist_t & | getKeyList () const |
| Derived versions may produce an ordered set of keys.
|
|
const map_t & | getMap () const |
|
template<class T2 > |
void | exportMap (std::map< std::string, T2 > &m) const |
| Copies the contents to another map.
|
|
template<bool STRICT = true> |
void | importEntries (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) |
| Assigns a value to given key; if the entry does not exist, tries to create it with directly with operator[]. More...
|
|
template<bool STRICT = true> |
void | importEntries (const std::list< std::string > &entries, char assignmentSymbol='=') |
|
template<class S , bool STRICT = true> |
void | importMap (const std::map< std::string, S > &m) |
| Assign values from a map, overriding existing entries. More...
|
|
template<class T2 , bool STRICT = true> |
void | importCastableMap (const drain::SmartMap< T2 > &m) |
| Assign values from a map, possibly extending the map. More...
|
|
template<class T2 > |
void | updateFromMap (const std::map< std::string, T2 > &m) |
| Assign values from a map. Updates existing entries only. More...
|
|
template<class T2 > |
void | updateFromCastableMap (const drain::SmartMap< T2 > &m) |
| Convenience.
|
|
void | setValues (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) |
| Sets values. If strictness==STRICTLY_CLOSED, throws exception if tries to assign a non-existing entry.
|
|
void | setValues (const char *entries, char assignmentSymbol='=', char separatorSymbol=0) |
|
template<class S > |
void | setValuesSEQ (const S &sequence) |
|
void | updateValues (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) |
| Sets applicable values ie. modifies existing entries only. In ordered maps, skips extra entries silently.
|
|
void | getKeys (std::ostream &ostr) const |
|
std::string | getKeys () const |
| Convenience function for std::string output.
|
|
void | getValues (std::ostream &ostr) const |
| Dumps the values.
|
|
std::string | getValues () const |
| Convenience function for std::string output.
|
|
std::ostream & | toStream (std::ostream &ostr, char equal='=', char startChar='{', char endChar='}', char separatorChar=',') const |
| Note: parameters discarded.
|
|
std::string | toStr (char equal='=', char start=0, char end=0, char separator=0) const |
|
void | dump (std::ostream &ostr=std::cout) const |
| Write map as a JSON code. More...
|
|
template<class T>
class drain::SmartMap< T >
A base class for smart maps providing methods for importing and exporting values, among others.
Unlike with std::map<>, operator[] is defined as const, too, returning reference to a static empty instance.
SmartMap maintains an ordered list of keys, accessible with getKeys(). The items in the key list are appended in the order they have been created. This is order is generally different from the (alphabetical) order appearing in std::map iteration.
Comma-separated values can be assigned simultaneously with setValues() and updateValues()