-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;
+void W1Device::save_and_clean_cache() {
+ list<Data *>::iterator iter;
+ Data *data;
+ int dec_precision;
+
+ dec_precision = get_data_decimal_precision();
+ StoreDay::save(id, &memory_cache, dec_precision);
+ for(iter = memory_cache.begin(); iter != memory_cache.end(); iter++) {
+ data = (Data *)*iter;
+ delete(data);