Utilities

TIDAS has several small helper functions / classes. They are documented here for lack of a better place.

Dictionaries

The TIDAS dictionary class exists mainly to provide a strongly typed implementation that can be read / written by a backend implementation. In the Python API, all classes / functions just use normal python dictionaries and these are converted under the hood to a C++ TIDAS dictionary.

class tidas::dict

This dictionary class stores values of multiple fixed types.

The type of each value is recorded and the value is stored as a string. The stored values are converted back on retrieval.

Public Functions

dict()

Default constructor.

~dict()

Destructor.

dict &operator=(dict const &other)

Assignment operator.

dict(dict const &other)

Copy constructor.

dict(backend_path const &loc)

(Internal) Load the dictionary from an existing location.

All meta data operations will apply to this location.

dict(dict const &other, std::string const &filter, backend_path const &loc)

(Internal) Copy from an existing dictionary.

Apply an optional filter to elements and relocate to a new location. If a filter is given, a new location must be specified.

void relocate(backend_path const &loc)

(Internal) Change the location of the dictionary.

void sync()

(Internal) Reload metadata from the current location, overwriting the current state in memory.

void flush() const

(Internal) Write metadata to the current location, overwriting the information at that location.

void copy(dict const &other, std::string const &filter, backend_path const &loc)

(Internal) Copy with optional selection and relocation.

backend_path location() const

(Internal) The current location.

template <class T>
void put(std::string const &key, T const &val)

Insert a value into the dictionary with the specified key.

template <class T>
T get(std::string const &key) const

Return a value from the dictionary with the specified key.

void clear()

Clear all elements of the dictionary.

std::vector<std::string> keys() const

Return a list of keys in the dictionary.

std::map<std::string, std::string> const &data() const

Return a const reference to the underlying data map.

std::map<std::string, data_type> const &types() const

Return a const reference to the underlying data type map.

Filesystem Utilities

In Python, there are already extensive tools for easy manipulation of the filesystem. These C++ tools are used internally but might also be useful for application developers, which is why they are documented here.

int64_t tidas::fs_stat(char const *path)

Return the size of the specified file.

void tidas::fs_rm(char const *path)

Remove the specified file.

void tidas::fs_mkdir(char const *path)

Make the specified directory.