diff options
author | om <om@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-07-11 12:27:58 +0000 |
---|---|---|
committer | om <om@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-07-11 12:27:58 +0000 |
commit | ecec1067b45477c1a6f3908b4fc6ac0faa6cdbb1 (patch) | |
tree | 1579757b197dfab7cfaf97fc78e6858e6a010f9b | |
parent | 0eaa647dcb020a824e24a29ba0e30483d065ac67 (diff) |
Add single parameter versions of Extensible::Extend and Extensible::GetExt for storing boolean values, seckshayer
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4324 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | include/base.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/base.h b/include/base.h index 3fa0dac6d..e41f520f5 100644 --- a/include/base.h +++ b/include/base.h @@ -79,6 +79,26 @@ public: */ return this->Extension_Items.insert(std::make_pair(key, (char*)p)).second; } + + /** Extend an Extensible class. + * + * @param key The key parameter is an arbitary string which identifies the extension data + * + * You must provide a key to store the data as via the parameter 'key', this single-parameter + * version takes no 'data' parameter, this is used purely for boolean values. + * The key will be inserted into the map with a NULL 'data' pointer. If the key already exists + * then you may not insert it twice, Extensible::Extend will return false in this case. + * + * @return Returns true on success, false if otherwise + */ + bool Extend(const std::string &key) + { + /* This will only add an item if it doesnt already exist, + * the return value is a std::pair of an iterator to the + * element, and a bool saying if it was actually inserted. + */ + return this->Extension_Items.insert(std::make_pair(key, (char*)NULL)).second; + } /** Shrink an Extensible class. * @@ -110,6 +130,20 @@ public: return false; } } + + /** Get an extension item. + * + * @param key The key parameter is an arbitary string which identifies the extension data + * @return Returns true if the item was found and false if it was not. + * + * This single-parameter version only checks if the key exists, it does nothing with + * the 'data' field and is probably only useful in conjunction with the single-parameter + * version of Extend(). + */ + bool GetExt(const std::string &key) + { + return (this->Extension_Items.find(key) != this->Extension_Items.end()); + } /** Get a list of all extension items names. * @param list A deque of strings to receive the list |