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();