# user_info.h File Reference

UI (user info) class for loading/saving objects from/to configuration files. It is designed with use of libconfig C/C++ Configuration File Library. More...

`#include <stdio.h>`
`#include <string>`
`#include <typeinfo>`
`#include <map>`
`#include <stdexcept>`
`#include "libconfig/libconfig.h++"`
`#include "../bdmroot.h"`
`#include "itpp/itbase.h"`

Go to the source code of this file.

## Classes
class | bdm::UIException
| Exception prepared for reporting user-info errors which are always related to some concrete Setting path. More...
class | bdm::UIFile
| This class serves to load and/or save user-infos into/from configuration files stored on a hard-disk. More...
class | bdm::SettingResolver
| This class serves to expand links used within configuration files. More...
class | bdm::UI
| UI is an abstract class and it is intended for internal purposes only. More...
class | bdm::UI::UI::MappedUI
class | bdm::ParticularUI< T >
| The only UI descendant class which is not intended for direct use. It should be accessed within the UIREGISTER macro only. More...
## Defines
#define | UIREGISTER(class_name) template<> const ParticularUI<class_name>& ParticularUI<class_name>::factory = ParticularUI<class_name>(#class_name)
| Macro for registration of class into map of user-infos, registered class is scriptable using UI static methods.

## Detailed Description

UI (user info) class for loading/saving objects from/to configuration files. It is designed with use of libconfig C/C++ Configuration File Library.

Author:
  Vaclav Smidl.

----------------------------------- BDM++ - C++ library for Bayesian Decision Making under Uncertainty

Using IT++ for numerical operations -----------------------------------

## Define Documentation

#define UIREGISTER | ( | class_name |  | ) | template<> const ParticularUI<class_name>& ParticularUI<class_name>::factory = ParticularUI<class_name>(#class_name)

Macro for registration of class into map of user-infos, registered class is scriptable using UI static methods.

Argument class_name has to be a descendant of root class and also, it has to have parameterless constructor prepared. This macro should be used in header file, immediately after a class declaration.

See also:
  TODO MODUL