1 #include "unencrypted_properties.h"
6 const char* key = "key";
7 const char* ref = "ref";
8 const char* type = "type";
9 const char* password = "password";
14 const char* unencrypted_folder = "unencrypted";
17 UnencryptedProperties::UnencryptedProperties(const char* device)
18 : folder_(std::string() + device + "/" + unencrypted_folder)
22 UnencryptedProperties::UnencryptedProperties()
26 template<> std::string UnencryptedProperties::Get(const char* name,
27 std::string default_value)
29 if (!OK()) return default_value;
30 std::ifstream i(folder_ + "/" + name, std::ios::binary);
35 i.seekg(0, std::ios::end);
36 int length = i.tellg();
37 i.seekg(0, std::ios::beg);
42 std::string s(length, 0);
43 i.read(&s[0], length);
51 template<> bool UnencryptedProperties::Set(const char* name, std::string const& value)
53 if (!OK()) return false;
54 std::ofstream o(folder_ + "/" + name, std::ios::binary);
59 UnencryptedProperties UnencryptedProperties::GetChild(const char* name)
61 UnencryptedProperties e4p;
62 if (!OK()) return e4p;
64 std::string directory(folder_ + "/" + name);
65 if (mkdir(directory.c_str(), 700) == -1 && errno != EEXIST) {
69 e4p.folder_ = directory;
73 bool UnencryptedProperties::Remove(const char* name)
75 if (remove((folder_ + "/" + name).c_str())
83 bool UnencryptedProperties::OK() const
85 return !folder_.empty();