# bdm::dirfilelog Class Reference

Logging into dirfile with buffer in memory. More...

`#include <loggers.h>`

List of all members.

## Public Member Functions
| dirfilelog (string dirname0, int maxlen0)
| Default constructor.
void | init ()
| Initialize storage.
void | step ()
| Shifts storage position for another time step.
void | finalize ()
| Finalize storing information.
void | write_buffers (int Len)
| Write memory storage to disk.
void | from_setting (const Setting &root)
| UI for dirfilelog (Kst file format).
void | logit (int id, const vec &v)
| log this vector
void | logit (int id, const double &d)
| log this double
void | itsave (const char *fname)
| Save values into an itfile named after `fname`.
virtual int | add (const RV &rv, string prefix="")
virtual string | to_string ()
| This method returns a basic info about the current instance.
virtual void | to_setting (Setting &root) const
| This method save all the instance properties into the Setting structure.
virtual void | validate ()
| This method TODO.
## Protected Attributes
string | dirname
| name of the directory
Array< string > | scalarnames
| Automatically generated.
int | maxlen
| Maximum length of vectors stored in memory.
int | ind
| Currect record to be written.
Array< mat > | vectors
| Storage.
string | itfilename
| name of it file to save results
Array< RV > | entries
| RVs of all logged variables.
Array< string > | names
| Names of logged quantities, e.g. names of algorithm variants.

## Detailed Description

Logging into dirfile with buffer in memory.

Dirfile is a special format used by the kst program. See documentation of kst for description.

This format is used to store scalars, hence multivariate RVs must be separated.

## Constructor & Destructor Documentation

bdm::dirfilelog::dirfilelog | ( | string | dirname0,
|  | int | maxlen0 |
| ) |  |  | `[inline]`

Default constructor.

Parameters:

  | dirname0 | name of the directory in which to store the results
  | maxlen0 | length of the memory buffers, when full the buffers will be dumped to HDD and returned to the beginning.

## Member Function Documentation

virtual int bdm::logger::add | ( | const RV & | rv,
|  | string | prefix = `""` |
| ) |  |  | `[inline, virtual, inherited]`

returns an identifier which will be later needed for calling the `logit()` function For empty RV it returns -1, this entry will be ignored by `logit()`.

References bdm::RV::_dsize(), bdm::logger::entries, and bdm::logger::names.

Referenced by bdm::ArxDS::log_add(), bdm::BM::log_add(), and bdm::DS::log_add().

void bdm::dirfilelog::from_setting | ( | const Setting & | root | ) | `[virtual]`

UI for dirfilelog (Kst file format).

            logger = {
                    type = "dirfilelog";
                    dirmane = "directory_for_files"; // resulting files will be stored there
                    maxlen = 100;                    // size of memory buffer, when full results are written to disk
            }

Reimplemented from bdm::memlog.

References dirname, bdm::memlog::maxlen, and scalarnames.

void bdm::dirfilelog::write_buffers | ( | int | Len | ) |

Write memory storage to disk.

Parameters:

  | Len | length of buffer to be written, if 0 the file is truncated at 0.

References dirname, bdm::logger::entries, bdm::memlog::maxlen, scalarnames, and bdm::memlog::vectors.

Referenced by finalize(), init(), and step().

The documentation for this class was generated from the following files:

- loggers.h
- loggers.cpp