1 #include "unencrypted_properties.h"
7 const char* key = "key";
8 const char* ref = "ref";
9 const char* is_default = "is_default";
14 const char* unencrypted_folder = "unencrypted";
17 std::string UnencryptedProperties::GetPath(const char* device)
19 return std::string() + device + "/" + unencrypted_folder;
22 UnencryptedProperties::UnencryptedProperties(const char* device)
23 : folder_(GetPath(device))
25 DIR* dir = opendir(folder_.c_str());
33 UnencryptedProperties::UnencryptedProperties()
37 template<> std::string UnencryptedProperties::Get(const char* name,
38 std::string default_value) const
40 if (!OK()) return default_value;
41 std::ifstream i(folder_ + "/" + name, std::ios::binary);
46 i.seekg(0, std::ios::end);
47 int length = i.tellg();
48 i.seekg(0, std::ios::beg);
53 std::string s(length, 0);
54 i.read(&s[0], length);
62 template<> bool UnencryptedProperties::Set(const char* name, std::string const& value)
64 if (!OK()) return false;
65 std::ofstream o(folder_ + "/" + name, std::ios::binary);
70 UnencryptedProperties UnencryptedProperties::GetChild(const char* name) const
72 UnencryptedProperties up;
75 std::string directory(folder_ + "/" + name);
76 if (mkdir(directory.c_str(), 700) == -1 && errno != EEXIST) {
80 up.folder_ = directory;
84 bool UnencryptedProperties::Remove(const char* name)
86 if (remove((folder_ + "/" + name).c_str())
94 bool UnencryptedProperties::OK() const
96 return !folder_.empty();