diff options
Diffstat (limited to 'include/plist/Dictionary.h')
| -rw-r--r-- | include/plist/Dictionary.h | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/include/plist/Dictionary.h b/include/plist/Dictionary.h index a937bde..37ff1c9 100644 --- a/include/plist/Dictionary.h +++ b/include/plist/Dictionary.h @@ -19,8 +19,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PLIST__DICTIONARY_H -#define PLIST__DICTIONARY_H +#ifndef PLIST_DICTIONARY_H +#define PLIST_DICTIONARY_H #include <plist/Structure.h> #include <map> @@ -34,29 +34,40 @@ class Dictionary : public Structure public : Dictionary(Node* parent = NULL); Dictionary(plist_t node, Node* parent = NULL); - Dictionary(Dictionary& d); - Dictionary& operator=(Dictionary& d); + Dictionary(const Dictionary& d); + Dictionary& operator=(const Dictionary& d); virtual ~Dictionary(); - Node* Clone(); + Node* Clone() const; typedef std::map<std::string,Node*>::iterator iterator; + typedef std::map<std::string,Node*>::const_iterator const_iterator; Node* operator[](const std::string& key); iterator Begin(); + iterator begin(); iterator End(); + iterator end(); iterator Find(const std::string& key); - iterator Insert(const std::string& key, Node* node); + const_iterator Begin() const; + const_iterator begin() const; + const_iterator End() const; + const_iterator end() const; + size_t size() const; + const_iterator Find(const std::string& key) const; + iterator Set(const std::string& key, const Node* node); + iterator Set(const std::string& key, const Node& node); void Remove(Node* node); void Remove(const std::string& key); - std::string GetNodeKey(Node* key); + std::string GetNodeKey(Node* node); + template <typename T> T* Get(const std::string& key) { + return (T*)(_map[key]); + } private : std::map<std::string,Node*> _map; - - }; }; -#endif // PLIST__DICTIONARY_H +#endif // PLIST_DICTIONARY_H |
