From 32be8ec384bfd78e189d3de6609e50cf4dd072a2 Mon Sep 17 00:00:00 2001 From: Jonathan Beck Date: Fri, 16 Oct 2009 22:26:13 +0200 Subject: Fix Node lifecycle and change argument as reference to const reference. --- include/plist/Array.h | 6 ++++-- include/plist/Boolean.h | 4 ++++ include/plist/Data.h | 8 ++++++-- include/plist/Date.h | 4 ++++ include/plist/Dictionary.h | 12 +++++++----- include/plist/Integer.h | 4 ++++ include/plist/Node.h | 8 ++++---- include/plist/Real.h | 4 ++++ include/plist/String.h | 8 ++++++-- include/plist/Utils.h | 4 ++-- 10 files changed, 45 insertions(+), 17 deletions(-) (limited to 'include') diff --git a/include/plist/Array.h b/include/plist/Array.h index f990928..106555d 100644 --- a/include/plist/Array.h +++ b/include/plist/Array.h @@ -34,9 +34,11 @@ class Array : public Structure Array(); Array(plist_t node); Array(Array& a); - Array& operator=(const Array& a); + Array& operator=(Array& a); virtual ~Array(); - + + Node* Clone(); + Node* operator[](unsigned int index); void Append(Node* node); void Insert(Node* node, unsigned int pos); diff --git a/include/plist/Boolean.h b/include/plist/Boolean.h index 01b5b85..917bc9d 100644 --- a/include/plist/Boolean.h +++ b/include/plist/Boolean.h @@ -32,9 +32,13 @@ class Boolean : public Node public : Boolean(); Boolean(plist_t node); + Boolean(Boolean& b); + Boolean& operator=(Boolean& b); Boolean(bool b); virtual ~Boolean(); + Node* Clone(); + void SetValue(bool b); bool GetValue(); }; diff --git a/include/plist/Data.h b/include/plist/Data.h index 92bda0a..86a26d9 100644 --- a/include/plist/Data.h +++ b/include/plist/Data.h @@ -33,10 +33,14 @@ class Data : public Node public : Data(); Data(plist_t node); - Data(std::vector& buff); + Data(Data& d); + Data& operator=(Data& d); + Data(const std::vector& buff); virtual ~Data(); - void SetValue(std::vector& buff); + Node* Clone(); + + void SetValue(const std::vector& buff); std::vector GetValue(); }; diff --git a/include/plist/Date.h b/include/plist/Date.h index 78d8601..e9645aa 100644 --- a/include/plist/Date.h +++ b/include/plist/Date.h @@ -32,9 +32,13 @@ class Date : public Node public : Date(); Date(plist_t node); + Date(Date& d); + Date& operator=(Date& d); Date(uint64_t i); virtual ~Date(); + Node* Clone(); + void SetValue(uint64_t i); uint64_t GetValue(); }; diff --git a/include/plist/Dictionary.h b/include/plist/Dictionary.h index 8468ab5..6169774 100644 --- a/include/plist/Dictionary.h +++ b/include/plist/Dictionary.h @@ -35,17 +35,19 @@ class Dictionary : public Structure Dictionary(); Dictionary(plist_t node); Dictionary(Dictionary& d); - Dictionary& operator=(const Dictionary& d); + Dictionary& operator=(Dictionary& d); virtual ~Dictionary(); - + + Node* Clone(); + typedef std::map::iterator iterator; - Node* operator[](std::string& key); + Node* operator[](const std::string& key); iterator Begin(); iterator End(); - void Insert(std::string& key, Node* node); + void Insert(const std::string& key, Node* node); void Remove(Node* node); - void Remove(std::string& key); + void Remove(const std::string& key); private : std::map _map; diff --git a/include/plist/Integer.h b/include/plist/Integer.h index 823e3a0..3a3a0e3 100644 --- a/include/plist/Integer.h +++ b/include/plist/Integer.h @@ -32,9 +32,13 @@ class Integer : public Node public : Integer(); Integer(plist_t node); + Integer(Integer& i); + Integer& operator=(Integer& i); Integer(uint64_t i); virtual ~Integer(); + Node* Clone(); + void SetValue(uint64_t i); uint64_t GetValue(); }; diff --git a/include/plist/Node.h b/include/plist/Node.h index 3be900a..a59d469 100644 --- a/include/plist/Node.h +++ b/include/plist/Node.h @@ -31,11 +31,11 @@ class Node { public : virtual ~Node(); - Node(Node& node); - Node& operator=(const Node& node); - + + virtual Node* Clone() = 0; + plist_type GetType(); - plist_t GetPlist() const; + plist_t GetPlist(); protected: Node(); diff --git a/include/plist/Real.h b/include/plist/Real.h index 8d898c7..c0095e4 100644 --- a/include/plist/Real.h +++ b/include/plist/Real.h @@ -32,9 +32,13 @@ class Real : public Node public : Real(); Real(plist_t node); + Real(Real& d); + Real& operator=(Real& d); Real(double d); virtual ~Real(); + Node* Clone(); + void SetValue(double d); double GetValue(); }; diff --git a/include/plist/String.h b/include/plist/String.h index 5314065..769c98b 100644 --- a/include/plist/String.h +++ b/include/plist/String.h @@ -33,10 +33,14 @@ class String : public Node public : String(); String(plist_t node); - String(std::string& s); + String(String& s); + String& operator=(String& s); + String(const std::string& s); virtual ~String(); - void SetValue(std::string& s); + Node* Clone(); + + void SetValue(const std::string& s); std::string GetValue(); }; diff --git a/include/plist/Utils.h b/include/plist/Utils.h index b499635..f3e2685 100644 --- a/include/plist/Utils.h +++ b/include/plist/Utils.h @@ -30,8 +30,8 @@ namespace PList class Utils { public: - static Structure* FromXml(std::string& in); - static Structure* FromBin(std::vector& in); + static Structure* FromXml(const std::string& in); + static Structure* FromBin(const std::vector& in); private: Utils(); -- cgit v1.1-32-gdbae