bdm::ParticularUI< T > Class Template Reference


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

#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.

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

Generated on Wed Sep 16 22:33:33 2009 for mixpp by  doxygen 1.6.1