diff options
| -rw-r--r-- | include/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | include/plist/Uid.h | 48 | ||||
| -rw-r--r-- | include/plist/plist++.h | 1 | ||||
| -rw-r--r-- | src/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/Node.cpp | 7 | ||||
| -rw-r--r-- | src/Uid.cpp | 73 | 
6 files changed, 131 insertions, 0 deletions
| diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index ca07978..f6d3ea7 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -11,6 +11,7 @@ SET( libplist_HDR  	${CMAKE_CURRENT_SOURCE_DIR}/plist/Real.h  	${CMAKE_CURRENT_SOURCE_DIR}/plist/String.h  	${CMAKE_CURRENT_SOURCE_DIR}/plist/Key.h +	${CMAKE_CURRENT_SOURCE_DIR}/plist/Uid.h  	${CMAKE_CURRENT_SOURCE_DIR}/plist/Structure.h    ) diff --git a/include/plist/Uid.h b/include/plist/Uid.h new file mode 100644 index 0000000..62a49e7 --- /dev/null +++ b/include/plist/Uid.h @@ -0,0 +1,48 @@ +/* + * Uid.h + * Uid node type for C++ binding + * + * Copyright (c) 2012 Nikias Bassen, 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__UID_H +#define PLIST__UID_H + +#include <plist/Node.h> + +namespace PList +{ + +class Uid : public Node +{ +public : +    Uid(Node* parent = NULL); +    Uid(plist_t node, Node* parent = NULL); +    Uid(Uid& i); +    Uid& operator=(Uid& i); +    Uid(uint64_t i); +    virtual ~Uid(); + +    Node* Clone(); + +    void SetValue(uint64_t i); +    uint64_t GetValue(); +}; + +}; + +#endif // PLIST__UID_H diff --git a/include/plist/plist++.h b/include/plist/plist++.h index 0690b26..b29fc76 100644 --- a/include/plist/plist++.h +++ b/include/plist/plist++.h @@ -32,6 +32,7 @@  #include "Node.h"  #include "Real.h"  #include "Key.h" +#include "Uid.h"  #include "String.h"  #include "Structure.h" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ad7362b..c4f5483 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,6 +20,7 @@ SET(libplist++_SRC  	Date.cpp  	Data.cpp  	Key.cpp +	Uid.cpp  	Structure.cpp  	Array.cpp  	Dictionary.cpp diff --git a/src/Node.cpp b/src/Node.cpp index 35128a6..516d1ae 100644 --- a/src/Node.cpp +++ b/src/Node.cpp @@ -28,6 +28,7 @@  #include <plist/Real.h>  #include <plist/String.h>  #include <plist/Key.h> +#include <plist/Uid.h>  #include <plist/Data.h>  #include <plist/Date.h> @@ -64,6 +65,9 @@ Node::Node(plist_type type, Node* parent) : _parent(parent)          _node = plist_new_string("");          plist_set_key_val(_node, "");          break; +    case PLIST_UID: +	_node = plist_new_uid(0); +	break;      case PLIST_DATA:          _node = plist_new_data(NULL,0);          break; @@ -137,6 +141,9 @@ Node* Node::FromPlist(plist_t node, Node* parent)          case PLIST_KEY:              ret = new Key(node, parent);              break; +        case PLIST_UID: +            ret = new Uid(node, parent); +            break;          case PLIST_DATE:              ret = new Date(node, parent);              break; diff --git a/src/Uid.cpp b/src/Uid.cpp new file mode 100644 index 0000000..02a59b3 --- /dev/null +++ b/src/Uid.cpp @@ -0,0 +1,73 @@ +/* + * Uid.cpp + * + * Copyright (c) 2012 Nikias Bassen, 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/Uid.h> + +namespace PList +{ + +Uid::Uid(Node* parent) : Node(PLIST_UID, parent) +{ +} + +Uid::Uid(plist_t node, Node* parent) : Node(node, parent) +{ +} + +Uid::Uid(PList::Uid& i) : Node(PLIST_UID) +{ +    plist_set_uid_val(_node, i.GetValue()); +} + +Uid& Uid::operator=(PList::Uid& i) +{ +    plist_free(_node); +    _node = plist_copy(i.GetPlist()); +    return *this; +} + +Uid::Uid(uint64_t i) : Node(PLIST_UID) +{ +    plist_set_uid_val(_node, i); +} + +Uid::~Uid() +{ +} + +Node* Uid::Clone() +{ +    return new Uid(*this); +} + +void Uid::SetValue(uint64_t i) +{ +    plist_set_uid_val(_node, i); +} + +uint64_t Uid::GetValue() +{ +    uint64_t i = 0; +    plist_get_uid_val(_node, &i); +    return i; +} + +}; | 
