# 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 User Infos and their use. More...

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

Go to the source code of this file.

## Classes
class | bdm::UIException
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 which collects all the auxiliary functions useful to prepare some concrete user-infos. More...
class | bdm::UI::UI::MappedUI
class | bdm::ParticularUI< T >
## Defines
#define | UIREGISTER(class_name) static bdm::ParticularUI<class_name> UI##class_name(#class_name)
| Macro for registration of class into map of user-infos, registered class is scriptable using UI static methods.
#define | QUOTEME(x) #x
| Instrumental macro for UIREGISTER2.
#define | UIREGISTER2(class_name, temp_name) static bdm::ParticularUI<class_name<temp_name> > UI##class_name##_##temp_name( QUOTEME(class_name<temp_name>) )
| Variant of UIREGISTER for templated classes.

## 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 User Infos and their use.

Author:
  Vaclav Smidl.

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

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

## Define Documentation

#define UIREGISTER | ( | class_name |  | ) | static bdm::ParticularUI<class_name> UI##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 to have a default constructor. This macro should be used in header file, immediately after a class declaration.

User Infos and their use

#define UIREGISTER2 | ( | class_name,
|  | temp_name |  | ) | static bdm::ParticularUI<class_name<temp_name> > UI##class_name##_##temp_name( QUOTEME(class_name<temp_name>) )

Variant of UIREGISTER for templated classes.

Technical meann of registering UIREGISTER(class_name<template_name>).

User Infos and their use