bdm::ParticularUI< T > Class Template Reference

#include <user_info.h>

List of all members.

Public Member Functions

 ParticularUI (const string &class_name)
 Constructor used by the UIREGISTER macro.
rootnew_instance () const
 A method returning a brand new instance of class T, this method is the reason why there have to be a parameterless constructor in class T.

Private Types

enum  SettingPresence { optional, compulsory }
 Enum type used to determine whether the data for concrete Settingis is compulsory or optional.

Static Private Member Functions

Initialization of classes
The type T has to be a bdm::root descendant class

template<class T >
static shared_ptr< T > build (const Setting &element, const string &name, SettingPresence settingPresence=optional)
template<class T >
static shared_ptr< T > build (const Setting &element, const int index, SettingPresence settingPresence=optional)
Initialization of structures
The type T has to be int, double, string, vec, ivec or mat.

template<class T >
static bool get (T &instance, const Setting &element, const string &name, SettingPresence settingPresence=optional)
template<class T >
static bool get (T &instance, const Setting &element, const int index, SettingPresence settingPresence=optional)
template<class T >
static bool get (T &instance, const Setting &element)
 The existing instance of type T is initialized with values stored in the Setting element directly.
Initialization of arrays Array<T>
The type T has to be int, double, string, vec, ivec or mat, or pointer to any root descendant.

template<class T >
static bool get (Array< T > &array_to_load, const Setting &element, const string &name, SettingPresence settingPresence=optional)
template<class T >
static bool get (Array< T > &array_to_load, const Setting &element, const int index, SettingPresence settingPresence=optional)
template<class T >
static bool get (Array< T > &array_to_load, const Setting &element)
 The existing array of type T is initialized with values stored in the Setting element.
Serialization of objects and structures into a new Setting
The new child Setting can be accessed either by its name - if some name is passed as a parameter - or by its integer index. In that case, the new element is added at the very end of the current list of child Settings.

template<class T >
static void save (const T *const instance, Setting &element, const string &name="")
 A root descendant instance is stored in the new child Setting appended to the passed element.
template<class T >
static void save (const shared_ptr< T > &instance, Setting &element, const string &name="")
template<class T >
static void save (const Array< T > &array_to_save, Setting &element, const string &name="")
 An Array<T> instance is stored in the new child Setting appended to the passed element.
static void save (const mat &matrix, Setting &element, const string &name="")
 A matrix(of type mat) is stored in the new child Setting appended to the passed element.
static void save (const ivec &vec, Setting &element, const string &name="")
 An integer vector (of type ivec) is stored in the new child Setting appended to the passed element.
static void save (const vec &vector, Setting &element, const string &name="")
 A double vector (of type vec) is stored in the new child Setting appended to the passed element.
static void save (const string &str, Setting &element, const string &name="")
 A string is stored in the new child Setting appended to the passed element.
static void save (const int &integer, Setting &element, const string &name="")
 An integer is stored in the new child Setting appended to the passed element.
static void save (const double &real, Setting &element, const string &name="")
 A double is stored in the new child Setting appended to the passed element.


Detailed Description

template<typename T>
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. User Infos and their use
The documentation for this class was generated from the following file:

Generated on Wed Oct 7 17:34:46 2009 for mixpp by  doxygen 1.5.9