From ecec1067b45477c1a6f3908b4fc6ac0faa6cdbb1 Mon Sep 17 00:00:00 2001 From: om Date: Tue, 11 Jul 2006 12:27:58 +0000 Subject: 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 --- include/base.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'include') 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 -- cgit v1.2.3