summaryrefslogtreecommitdiffstats
path: root/swig/plist.i
diff options
context:
space:
mode:
Diffstat (limited to 'swig/plist.i')
-rw-r--r--swig/plist.i304
1 files changed, 13 insertions, 291 deletions
diff --git a/swig/plist.i b/swig/plist.i
index 2d5dfa7..5e3f75a 100644
--- a/swig/plist.i
+++ b/swig/plist.i
@@ -3,24 +3,7 @@
%feature("autodoc", "1");
%{
/* Includes the header in the wrapper code */
- #include <plist/plist.h>
#include <plist/plist++.h>
-
-typedef struct {
- plist_t node;
- char should_keep_plist;
-} PListNode;
-
-PListNode *allocate_plist_wrapper(plist_t plist, char should_keep_plist) {
- PListNode* wrapper = (PListNode*) malloc(sizeof(PListNode));
- if (wrapper) {
- memset(wrapper, 0, sizeof(PListNode));
- wrapper->node = plist;
- wrapper->should_keep_plist = should_keep_plist;
- return wrapper;
- }
- return NULL;
-}
%}
%include "std_string.i"
@@ -178,6 +161,19 @@ namespace std {
%include <plist/Dictionary.h>
%include <plist/Utils.h>
+typedef enum {
+ PLIST_BOOLEAN,
+ PLIST_UINT,
+ PLIST_REAL,
+ PLIST_STRING,
+ PLIST_ARRAY,
+ PLIST_DICT,
+ PLIST_DATE,
+ PLIST_DATA,
+ PLIST_KEY,
+ PLIST_NONE
+} plist_type;
+
#if SWIGPYTHON
#if SWIG_VERSION <= 0x010336
@@ -275,277 +271,3 @@ namespace std {
#undef SwigPyIterator
#endif
-
-
-//deprecated wrapper below
-
-%include "stdint.i"
-%include "cstring.i"
-
-/* Parse the header file to generate wrappers */
-typedef enum {
- PLIST_BOOLEAN,
- PLIST_UINT,
- PLIST_REAL,
- PLIST_STRING,
- PLIST_ARRAY,
- PLIST_DICT,
- PLIST_DATE,
- PLIST_DATA,
- PLIST_KEY,
- PLIST_NONE
-} plist_type;
-
-typedef struct {
-} PListNode;
-
-%extend PListNode { // Attach these functions to struct Vector
- PListNode(plist_type t) {
- PListNode* node = NULL;
- switch (t) {
- case PLIST_ARRAY :
- node = allocate_plist_wrapper( plist_new_array(), 0 );
- break;
- case PLIST_DICT :
- node = allocate_plist_wrapper( plist_new_dict(), 0 );
- break;
- default :
- node = NULL;
- break;
- }
- return node;
- }
-
- %cstring_input_binary(char *data, uint64_t len);
- PListNode(char *data, uint64_t len) {
- //first check input
- if (len > 8) {
- plist_t plist = NULL;
- if (memcmp(data, "bplist00", 8) == 0) {
- plist_from_bin(data, len, &plist);
- } else {
- plist_from_xml(data, len, &plist);
- }
- if (plist)
- return allocate_plist_wrapper( plist, 0 );
- }
- return NULL;
- }
-
- ~PListNode() {
- if (!$self->should_keep_plist) {
- plist_free($self->node);
- }
- $self->node = NULL;
- $self->should_keep_plist = 0;
- free($self);
- $self = NULL;
- }
-
- void add_sub_node(PListNode* subnode) {
- if (subnode) {
- plist_add_sub_node($self->node, subnode->node);
- //subnode is not root anymore. Do not delete tree
- subnode->should_keep_plist = 1;
- }
- }
-
- void add_sub_key(char* k) {
- plist_add_sub_key_el($self->node, k);
- }
-
- void add_sub_string(char* s) {
- plist_add_sub_string_el($self->node, s);
- }
-
- void add_sub_bool(char b) {
- plist_add_sub_bool_el($self->node, b);
- }
-
- void add_sub_uint(uint64_t i) {
- plist_add_sub_uint_el($self->node, i);
- }
-
- void add_sub_real(double d) {
- plist_add_sub_real_el($self->node, d);
- }
-
- %cstring_input_binary(char *data, uint64_t len);
- void add_sub_data(char *data, uint64_t len) {
- plist_add_sub_data_el($self->node, data, len);
- }
-
- void set_as_key(char* k) {
- plist_set_key_val($self->node, k);
- }
-
- void set_as_string(char* s) {
- plist_set_string_val($self->node, s);
- }
-
- void set_as_bool(char b) {
- plist_set_bool_val($self->node, b);
- }
-
- void set_as_uint(uint64_t i) {
- plist_set_uint_val($self->node, i);
- }
-
- void set_as_real(double d) {
- plist_set_real_val($self->node, d);
- }
-
- %cstring_input_binary(char *data, uint64_t len);
- void set_as_data(char *data, uint64_t len) {
- plist_set_data_val($self->node, data, len);
- }
-
- PListNode* get_first_child() {
- plist_t node = plist_get_first_child( $self->node );
- if (node) {
- return allocate_plist_wrapper(node, 1);
- }
- return NULL;
- }
-
- PListNode* get_next_sibling() {
- plist_t node = plist_get_next_sibling( $self->node );
- if (node) {
- return allocate_plist_wrapper(node, 1);
- }
- return NULL;
- }
-
- PListNode* get_prev_sibling() {
- plist_t node = plist_get_prev_sibling( $self->node );
- if (node) {
- return allocate_plist_wrapper(node, 1);
- }
- return NULL;
- }
-
- PListNode* get_parent() {
- plist_t node = plist_get_parent( $self->node );
- if (node) {
- return allocate_plist_wrapper(node, 1);
- }
- return NULL;
- }
-
- %newobject as_key;
- char* as_key() {
- char* k = NULL;
- plist_get_key_val($self->node, &k);
- return k;
- }
-
- %newobject as_string;
- char* as_string() {
- char* s = NULL;
- plist_get_string_val($self->node, &s);
- return s;
- }
-
- char as_bool() {
- uint8_t b;
- plist_get_bool_val($self->node, &b);
- return (char)b;
- }
-
- uint64_t as_uint() {
- uint64_t i = 0;
- plist_get_uint_val($self->node, &i);
- return i;
- }
-
- double as_real() {
- double d = 0;
- plist_get_real_val($self->node, &d);
- return d;
- }
-
- %cstring_output_allocate_size(char **STRING, uint64_t *LENGTH, free(*$1));
- void as_data(char **STRING, uint64_t *LENGTH) {
- char* s = NULL;
- uint64_t l;
- plist_get_data_val($self->node, &s, &l);
- *STRING = s;
- *LENGTH = l;
- return;
- }
-
- plist_type get_type() {
- return plist_get_node_type($self->node);
- }
-
- PListNode* find_node_by_key(char *s) {
- plist_t node = plist_find_node_by_key($self->node, s);
- if (node) {
- return allocate_plist_wrapper(node, 1);
- }
- return NULL;
- }
-
- PListNode* find_node_by_string(char* s) {
- plist_t node = plist_find_node_by_string($self->node, s);
- if (node) {
- return allocate_plist_wrapper(node, 1);
- }
- return NULL;
- }
-
- PListNode* get_array_nth_el(unsigned int n) {
- plist_t node = plist_get_array_nth_el($self->node, n);
- if (node) {
- return allocate_plist_wrapper(node, 1);
- }
- return NULL;
- }
-
- PListNode* get_dict_el_from_key(char *key) {
- plist_t node = plist_get_dict_el_from_key($self->node, key);
- if (node) {
- return allocate_plist_wrapper(node, 1);
- }
- return NULL;
- }
-
- %newobject to_xml;
- char* to_xml () {
- char* s = NULL;
- uint32_t l;
- plist_to_xml($self->node, &s, &l);
- return s;
- }
-
- %cstring_output_allocate_size(char **STRING, uint64_t *LENGTH, free(*$1));
- void to_bin(char **STRING, uint64_t *LENGTH) {
- char* s = NULL;
- uint32_t l;
- plist_to_bin($self->node, &s, &l);
- *STRING = s;
- *LENGTH = l;
- return;
- }
-
- %cstring_input_binary(char *data, uint64_t len);
- void from_xml (char *data, uint64_t len) {
- if (!$self->should_keep_plist) {
- plist_free($self->node);
- }
- $self->node = NULL;
- $self->should_keep_plist = 0;
- plist_from_xml(data, len, &$self->node);
- }
-
- %cstring_input_binary(char *data, uint64_t len);
- void from_bin (char* data, uint64_t len) {
- if (!$self->should_keep_plist) {
- plist_free($self->node);
- }
- $self->node = NULL;
- $self->should_keep_plist = 0;
- plist_from_bin(data, len, &$self->node);
- }
-};
-