Commit 553c3849 authored by Nikias Bassen's avatar Nikias Bassen

C++: added support for PLIST_UID nodes (class Uid)

parent 057fa38c
......@@ -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
)
......
/*
* 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
......@@ -32,6 +32,7 @@
#include "Node.h"
#include "Real.h"
#include "Key.h"
#include "Uid.h"
#include "String.h"
#include "Structure.h"
......
......@@ -20,6 +20,7 @@ SET(libplist++_SRC
Date.cpp
Data.cpp
Key.cpp
Uid.cpp
Structure.cpp
Array.cpp
Dictionary.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;
......
/*
* 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;
}
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment