Skip to content

Commit

Permalink
Move some methods and drop Utils class in C++ binding.
Browse files Browse the repository at this point in the history
  • Loading branch information
JonathanBeck committed Nov 10, 2009
1 parent 53a9f89 commit 8c6a809
Show file tree
Hide file tree
Showing 10 changed files with 88 additions and 156 deletions.
1 change: 0 additions & 1 deletion include/CMakeLists.txt
Expand Up @@ -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}
Expand Down
2 changes: 2 additions & 0 deletions include/plist/Node.h
Expand Up @@ -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);
Expand Down
3 changes: 3 additions & 0 deletions include/plist/Structure.h
Expand Up @@ -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);
Expand Down
43 changes: 0 additions & 43 deletions include/plist/Utils.h

This file was deleted.

1 change: 0 additions & 1 deletion include/plist/plist++.h
Expand Up @@ -33,6 +33,5 @@
#include "Real.h"
#include "String.h"
#include "Structure.h"
#include "Utils.h"

#endif
1 change: 0 additions & 1 deletion src/CMakeLists.txt
Expand Up @@ -18,7 +18,6 @@ SET(libplist++_SRC
Structure.cpp
Array.cpp
Dictionary.cpp
Utils.cpp
)

ADD_LIBRARY( plist SHARED ${libplist_SRC} )
Expand Down
49 changes: 49 additions & 0 deletions src/Node.cpp
Expand Up @@ -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
{
Expand Down Expand Up @@ -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;
}

};
34 changes: 34 additions & 0 deletions src/Structure.cpp
Expand Up @@ -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);

}

};

109 changes: 0 additions & 109 deletions src/Utils.cpp

This file was deleted.

1 change: 0 additions & 1 deletion swig/plist.i
Expand Up @@ -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,
Expand Down

0 comments on commit 8c6a809

Please sign in to comment.