summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Jonathan Beck2009-11-11 00:18:14 +0100
committerGravatar Jonathan Beck2009-11-11 00:18:14 +0100
commit8c6a809fafa6befff7e2b1adc3df2bdb47042dd1 (patch)
tree2336ae7ee66dbb639c8b8bd8c06171c1f6f6e334
parent53a9f891f82e973440709593d259bd7c1f22dd1a (diff)
downloadlibplist-8c6a809fafa6befff7e2b1adc3df2bdb47042dd1.tar.gz
libplist-8c6a809fafa6befff7e2b1adc3df2bdb47042dd1.tar.bz2
Move some methods and drop Utils class in C++ binding.
-rw-r--r--include/CMakeLists.txt1
-rw-r--r--include/plist/Node.h2
-rw-r--r--include/plist/Structure.h3
-rw-r--r--include/plist/Utils.h43
-rw-r--r--include/plist/plist++.h1
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/Node.cpp49
-rw-r--r--src/Structure.cpp34
-rw-r--r--src/Utils.cpp109
-rw-r--r--swig/plist.i1
10 files changed, 88 insertions, 156 deletions
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 00dbbda..ea77d45 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -11,7 +11,6 @@ SET( libplist_HDR
${CMAKE_CURRENT_SOURCE_DIR}/plist/Real.h
${CMAKE_CURRENT_SOURCE_DIR}/plist/String.h
${CMAKE_CURRENT_SOURCE_DIR}/plist/Structure.h
- ${CMAKE_CURRENT_SOURCE_DIR}/plist/Utils.h
)
INSTALL( FILES ${libplist_HDR}
diff --git a/include/plist/Node.h b/include/plist/Node.h
index 2f9f5b6..1da9ee1 100644
--- a/include/plist/Node.h
+++ b/include/plist/Node.h
@@ -38,6 +38,8 @@ public :
plist_type GetType();
plist_t GetPlist();
+ static Node* FromPlist(plist_t node, Node* parent = NULL);
+
protected:
Node(Node* parent = NULL);
Node(plist_t node, Node* parent = NULL);
diff --git a/include/plist/Structure.h b/include/plist/Structure.h
index f6e4495..ace8b5c 100644
--- a/include/plist/Structure.h
+++ b/include/plist/Structure.h
@@ -41,6 +41,9 @@ public :
virtual void Remove(Node* node) = 0;
+ static Structure* FromXml(const std::string& xml);
+ static Structure* FromBin(const std::vector<char>& bin);
+
protected:
Structure(Node* parent = NULL);
Structure(plist_type type, Node* parent = NULL);
diff --git a/include/plist/Utils.h b/include/plist/Utils.h
deleted file mode 100644
index 52503a0..0000000
--- a/include/plist/Utils.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Utils.h
- * Import functions for C++ binding
- *
- * Copyright (c) 2009 Jonathan Beck All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef PLIST__UTILS_H
-#define PLIST__UTILS_H
-
-#include <plist/Structure.h>
-#include <string>
-
-namespace PList
-{
-class Utils
-{
-public:
- static Node* FromPlist(plist_t node, Node* parent = NULL);
- static Structure* FromXml(const std::string& xml);
- static Structure* FromBin(const std::vector<char>& bin);
-
-private:
- Utils();
- ~Utils();
-};
-};
-
-#endif // PLIST__UTILS_H
diff --git a/include/plist/plist++.h b/include/plist/plist++.h
index 79181c5..d5eb691 100644
--- a/include/plist/plist++.h
+++ b/include/plist/plist++.h
@@ -33,6 +33,5 @@
#include "Real.h"
#include "String.h"
#include "Structure.h"
-#include "Utils.h"
#endif
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3c6ac09..afeb33b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -18,7 +18,6 @@ SET(libplist++_SRC
Structure.cpp
Array.cpp
Dictionary.cpp
- Utils.cpp
)
ADD_LIBRARY( plist SHARED ${libplist_SRC} )
diff --git a/src/Node.cpp b/src/Node.cpp
index b0cc96a..3122322 100644
--- a/src/Node.cpp
+++ b/src/Node.cpp
@@ -21,6 +21,15 @@
#include <stdlib.h>
#include <plist/Node.h>
#include <plist/Structure.h>
+#include <plist/Utils.h>
+#include <plist/Dictionary.h>
+#include <plist/Array.h>
+#include <plist/Boolean.h>
+#include <plist/Integer.h>
+#include <plist/Real.h>
+#include <plist/String.h>
+#include <plist/Data.h>
+#include <plist/Date.h>
namespace PList
{
@@ -96,4 +105,44 @@ Node* Node::GetParent()
return _parent;
}
+Node* Node::FromPlist(plist_t node, Node* parent)
+{
+ Node* ret = NULL;
+ if (node)
+ {
+ plist_type type = plist_get_node_type(node);
+ switch (type)
+ {
+ case PLIST_DICT:
+ ret = new Dictionary(node, parent);
+ break;
+ case PLIST_ARRAY:
+ ret = new Array(node, parent);
+ break;
+ case PLIST_BOOLEAN:
+ ret = new Boolean(node, parent);
+ break;
+ case PLIST_UINT:
+ ret = new Integer(node, parent);
+ break;
+ case PLIST_REAL:
+ ret = new Real(node, parent);
+ break;
+ case PLIST_STRING:
+ ret = new String(node, parent);
+ break;
+ case PLIST_DATE:
+ ret = new Date(node, parent);
+ break;
+ case PLIST_DATA:
+ ret = new Data(node, parent);
+ break;
+ default:
+ plist_free(node);
+ break;
+ }
+ }
+ return ret;
+}
+
};
diff --git a/src/Structure.cpp b/src/Structure.cpp
index cf7c611..18b19ef 100644
--- a/src/Structure.cpp
+++ b/src/Structure.cpp
@@ -85,5 +85,39 @@ void Structure::UpdateNodeParent(Node* node)
node->_parent = this;
}
+static Structure* ImportStruct(plist_t root)
+{
+ Structure* ret = NULL;
+ plist_type type = plist_get_node_type(root);
+
+ if (PLIST_ARRAY == type || PLIST_DICT == type)
+ {
+ ret = static_cast<Structure*>(Node::FromPlist(root));
+ }
+ else
+ {
+ plist_free(root);
+ }
+
+ return ret;
+}
+
+Structure* Structure::FromXml(const std::string& xml)
+{
+ plist_t root = NULL;
+ plist_from_xml(xml.c_str(), xml.size(), &root);
+
+ return ImportStruct(root);
+}
+
+Structure* Structure::FromBin(const std::vector<char>& bin)
+{
+ plist_t root = NULL;
+ plist_from_bin(&bin[0], bin.size(), &root);
+
+ return ImportStruct(root);
+
+}
+
};
diff --git a/src/Utils.cpp b/src/Utils.cpp
deleted file mode 100644
index cb6da5e..0000000
--- a/src/Utils.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Utils.cpp
- *
- * Copyright (c) 2009 Jonathan Beck All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <stdlib.h>
-#include <plist/Utils.h>
-#include <plist/Dictionary.h>
-#include <plist/Array.h>
-#include <plist/Boolean.h>
-#include <plist/Integer.h>
-#include <plist/Real.h>
-#include <plist/String.h>
-#include <plist/Data.h>
-#include <plist/Date.h>
-
-namespace PList
-{
-
-Node* Utils::FromPlist(plist_t node, Node* parent)
-{
- Node* ret = NULL;
- if (node)
- {
- plist_type type = plist_get_node_type(node);
- switch (type)
- {
- case PLIST_DICT:
- ret = new Dictionary(node, parent);
- break;
- case PLIST_ARRAY:
- ret = new Array(node, parent);
- break;
- case PLIST_BOOLEAN:
- ret = new Boolean(node, parent);
- break;
- case PLIST_UINT:
- ret = new Integer(node, parent);
- break;
- case PLIST_REAL:
- ret = new Real(node, parent);
- break;
- case PLIST_STRING:
- ret = new String(node, parent);
- break;
- case PLIST_DATE:
- ret = new Date(node, parent);
- break;
- case PLIST_DATA:
- ret = new Data(node, parent);
- break;
- default:
- plist_free(node);
- break;
- }
- }
- return ret;
-}
-
-static Structure* ImportStruct(plist_t root)
-{
- Structure* ret = NULL;
- plist_type type = plist_get_node_type(root);
-
- if (PLIST_ARRAY == type || PLIST_DICT == type)
- {
- ret = static_cast<Structure*>(Utils::FromPlist(root));
- }
- else
- {
- plist_free(root);
- }
-
- return ret;
-}
-
-Structure* Utils::FromXml(const std::string& xml)
-{
- plist_t root = NULL;
- plist_from_xml(xml.c_str(), xml.size(), &root);
-
- return ImportStruct(root);
-}
-
-Structure* Utils::FromBin(const std::vector<char>& bin)
-{
- plist_t root = NULL;
- plist_from_bin(&bin[0], bin.size(), &root);
-
- return ImportStruct(root);
-
-}
-
-};
diff --git a/swig/plist.i b/swig/plist.i
index 5e3f75a..925752e 100644
--- a/swig/plist.i
+++ b/swig/plist.i
@@ -159,7 +159,6 @@ namespace std {
%include <plist/Structure.h>
%include <plist/Array.h>
%include <plist/Dictionary.h>
-%include <plist/Utils.h>
typedef enum {
PLIST_BOOLEAN,