data_store.h
997 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef DATA_STORE_H
#define DATA_STORE_H
#include <string>
#include <sstream>
#include <iostream>
#include <fstream>
#include "../multithread/buffer_producer.h"
#include "data_basic.h"
#include "../constant.h"
namespace data{
class Data_Store {
protected:
int size=0;
bool write_on_add;
std::string file_name;
std::ofstream output;
virtual void add_internal(data::Data_basic *data)=0;
public:
Data_Store():write_on_add(false){}
Data_Store(std::string file_name):
write_on_add(true),
file_name(file_name)
{
this->output.open(this->file_name,std::ios::trunc);
}
virtual ~Data_Store(){
this->output.close();
}
int getSize(){return this->size;}
void add(data::Data_basic *data){
this->add_internal(data);
if(this->write_on_add){
std::string tmp = data->to_csv();
this->output << tmp << std::endl;
}
}
virtual multithread::Buffer<data::Data_basic*>* get(std::string pattern)=0;
};
}
#endif // DATA_STORE_H