#include <cstdlib>
#include <plist/Key.h>
#include <plist/plist.h>
namespace PList {
Key::Key(Node *parent) : Node(PLIST_KEY, parent) {}
Key::Key(plist_t node, Node *parent) : Node(node, parent) {}
Key::Key(const PList::Key &k) : Node(PLIST_INT) {
plist_set_key_val(_node, k.GetValue().c_str());
}
Key &Key::operator=(const 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() const { return new Key(*this); }
void Key::SetValue(const std::string &s) {
plist_set_key_val(_node, s.c_str());
}
std::string Key::GetValue() const {
char *s = NULL;
plist_get_key_val(_node, &s);
std::string ret = s ? s : "";
free(s);
return ret;
}
}