diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/plist/Array.h | 10 | ||||
-rw-r--r-- | include/plist/Dictionary.h | 7 | ||||
-rw-r--r-- | include/plist/Structure.h | 1 |
3 files changed, 16 insertions, 2 deletions
diff --git a/include/plist/Array.h b/include/plist/Array.h index 0239c78..34ddd6f 100644 --- a/include/plist/Array.h +++ b/include/plist/Array.h @@ -57,6 +57,16 @@ public : void Remove(Node* node); void Remove(unsigned int pos); unsigned int GetNodeIndex(Node* node) const; + template <typename T> + T* at(unsigned int index) + { + return (T*)(_array.at(index)); + } + template <typename T> + T* At(unsigned int index) + { + return (T*)(_array.at(index)); + } private : std::vector<Node*> _array; diff --git a/include/plist/Dictionary.h b/include/plist/Dictionary.h index 583a430..fc7e558 100644 --- a/include/plist/Dictionary.h +++ b/include/plist/Dictionary.h @@ -60,11 +60,14 @@ public : void Remove(Node* node); void Remove(const std::string& 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; - - }; }; diff --git a/include/plist/Structure.h b/include/plist/Structure.h index eded8b2..d85b17a 100644 --- a/include/plist/Structure.h +++ b/include/plist/Structure.h @@ -43,6 +43,7 @@ public : static Structure* FromXml(const std::string& xml); static Structure* FromBin(const std::vector<char>& bin); + static Structure* FromBin(const char* bin, uint64_t size); protected: Structure(Node* parent = NULL); |