+
+string W1Device::get_formatted_data() {
+ string ret_val;
+
+ ret_val = get_formatted_data(get_value());
+ return ret_val;
+}
+
+string W1Device::get_formatted_data(string value) {
+ string ret_val;
+
+ ret_val = get_time() + ": device type = " + get_devicetype_name() + ", id = " + id + ", value = " + value + " " + get_unit();
+ return ret_val;
+}
+
+void W1Device::add_to_memory_cache(std::string formatted_data) {
+ // TODO: add mutex for memory_cache
+ memory_cache.push_back(formatted_data);
+}
+
+void W1Device::store() {
+ string file_path = "/tmp/" + id + ".txt";
+ string text_line;
+ ofstream data_file(file_path.c_str(), ios::app);
+
+ cout << "storing to " << file_path << "data size " << memory_cache.size() << endl;
+ // TODO: add mutex to protect memory_cache while it's read and emptied
+ if (data_file.is_open()) {
+ while(memory_cache.size() > 0) {
+ text_line = memory_cache.front();
+ memory_cache.pop_front();
+ if (text_line.length() > 0) {
+ cout << "storing line: " << text_line << endl;
+ data_file << text_line << endl;
+ }
+ }
+ data_file.close();
+ }
+ else {
+ cout << "could not open file " << file_path << " for writing data." << endl;
+ }
+}