#include <FileIOManager.h>
Public Types | |
typedef int(* | HeaderFunc )(const char **, char *) |
Public Member Functions | |
FileIOManager (bool use_compression, unsigned long mx_size) | |
constructor | |
virtual | ~FileIOManager () |
destructor | |
int | open (const std::string &) |
Opens a new file with a given base name. | |
int | close () |
Closes the file sequence. | |
int | write (const char *, size_t) |
Writes data into the file. | |
virtual std::string | new_name () |
changes the base name of the file | |
int | file_number () |
returns the serial number of the output file | |
void | set_max_size (unsigned long x) |
sets the maximum size of each file in the sequence | |
unsigned long | size () |
returns the size of the current file | |
double | relative_size () |
returns the relative size of the current file | |
void | Compress (bool t) |
Sets the compresion option. | |
bool | Compress () |
Returns the compression option. | |
const std::string & | get_file_name () const |
Returns the name of the current file. | |
void | set_header_func (HeaderFunc ff, char *dt) |
Sets the header "getter". | |
void | reset_header_func () |
removes the header "getter" pointer | |
void | set_tail_func (HeaderFunc ff, char *dt) |
Sets the tail "getter". | |
void | reset_tail_func () |
Public Attributes | |
HeaderFunc | get_header |
called when a new file is opened. | |
char * | header_data |
Data that will be passed to HeaderFunc. | |
HeaderFunc | get_tail |
called when a file is about to close. | |
char * | tail_data |
Private Member Functions | |
void | spy_size () |
spies the size of the current file | |
void | spy_size_intr () |
int | new_file () |
creates a new file in the file sequence | |
int | write_header_tail (HeaderFunc, char *) |
calls the header/tail function | |
Private Attributes | |
int | fd |
File handler. | |
gzFile | zfd |
Compression file handle. | |
Mutex | mtx |
Mutex. | |
IOthread | thread |
This is the thread that will spy the file size. | |
std::string | base_name |
File name. | |
std::string | extension |
File extension. | |
int | ifile |
File index. | |
bool | zcomp |
flag to activate data compression | |
unsigned long | _size |
Current file size. | |
unsigned long | _max_size |
Maximum file size. | |
std::string | file_name |
actual file name | |
bool | doSpy |
spying flag. | |
Friends | |
class | IOthread |
Classes | |
class | IOthread |
thread to spy the file size More... |
This class takes care of data logging into a file. It provides the posibility of compressing the data to reduce the file size. To compress it uses zlib.
One should specify a maximum size for the output file in the constructor. FileIOManager will split the data into a sequence of files that will share a common base name and will have appended in the name the serial number.
bool DAQpp::FileIOManager::doSpy [private] |
spying flag.
If true, FileIOmanager will spy the size of the file to check that it is not bigger than the maximum allowed
Referenced by close().
HeaderFunc DAQpp::FileIOManager::get_header |
called when a new file is opened.
Every time a new file is opened this fuction is called.
Referenced by new_file(), reset_header_func(), and set_header_func().
HeaderFunc DAQpp::FileIOManager::get_tail |
called when a file is about to close.
Berofe a file is closed this function is closed
Referenced by close(), new_file(), and set_tail_func().