diff options
author | Nikias Bassen | 2012-11-13 03:22:51 +0100 |
---|---|---|
committer | Nikias Bassen | 2012-11-13 03:22:51 +0100 |
commit | 46a5feb381512cebf5a05286730edd047b989e73 (patch) | |
tree | 9863c49e447b0d4411b0058348f53b465fcd4d78 /src/Key.cpp | |
parent | 58151b6cd801435d79145907cf6ef779d21573d3 (diff) | |
download | libplist-46a5feb381512cebf5a05286730edd047b989e73.tar.gz libplist-46a5feb381512cebf5a05286730edd047b989e73.tar.bz2 |
C++ bindings: added support for PLIST_KEY nodes.
Diffstat (limited to 'src/Key.cpp')
-rw-r--r-- | src/Key.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/Key.cpp b/src/Key.cpp new file mode 100644 index 0000000..4145f05 --- /dev/null +++ b/src/Key.cpp @@ -0,0 +1,75 @@ +/* + * Key.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/Key.h> + +namespace PList +{ + +Key::Key(Node* parent) : Node(PLIST_KEY, parent) +{ +} + +Key::Key(plist_t node, Node* parent) : Node(node, parent) +{ +} + +Key::Key(PList::Key& k) : Node(PLIST_UINT) +{ + plist_set_key_val(_node, k.GetValue().c_str()); +} + +Key& Key::operator=(PList::Key& k) +{ + plist_free(_node); + _node = plist_copy(k.GetPlist()); + return *this; +} + +Key::Key(const std::string& s) : Node(PLIST_STRING) +{ + plist_set_key_val(_node, s.c_str()); +} + +Key::~Key() +{ +} + +Node* Key::Clone() +{ + return new Key(*this); +} + +void Key::SetValue(const std::string& s) +{ + plist_set_key_val(_node, s.c_str()); +} + +std::string Key::GetValue() +{ + char* s = NULL; + plist_get_key_val(_node, &s); + std::string ret = s; + free(s); + return ret; +} + +}; |