#include <value_holder.hpp>
Открытые типы | |
typedef nonconst_suffix_t < Access_type, Data_source_value_type, Value_extractor, Data_source > | nonconst_accessor_t |
Удобный псевдоним. | |
typedef const_suffix_t < Access_type > | const_accessor_t |
Удобный псевдоним. | |
Открытые члены | |
value_holder_t (const std::string &name, const std::string &data_class) | |
Инициализирующий конструктор. | |
value_holder_t (const std::string &name, const std::string &data_class, const Access_type &initial) | |
Инициализирующий конструктор. | |
value_holder_t (const std::string &name, const std::string &data_class, const Access_type &initial, void(*starter)(abstract_data_source_t &)) | |
Инициализирующий конструктор с возможностью автоматического запуска. | |
nonconst_accessor_t | operator* () |
const_accessor_t | operator* () const |
void | start () |
Старт источника данных. | |
void | stop () |
Останов источника данных. | |
Защищенные данные | |
Access_type | m_v |
Значение, к которому нужно обращаться через operator*(). | |
Data_source | m_ds |
Источник данных, в котором отражаются изменения m_v. |
gemont_1::value_holder_t< unsigned int > value( ... ); (**value) = 16;
Если оператор * вызвается для неконстантного объекта value_holder_t, то считается, что хранимое значение обновляется и, поэтому, обновленное значение автоматически помещается в data-source.
Класс value_holder_t может использоваться не только для скалярных значений. Например, часто бывает необходимо мониторить размер некоторого STL-контейнера. В этом случае value_holder_t следует использовать так:
gemont_1::value_holder_t< std::set< std::string >, unsigned int, gemont_1::stl_container_size< std::set< std::string > > > value( ... ); (**value).insert( "my_string" );
Для того, чтобы стартовать источник данных сразу в конструкторе, необходимо использовать конструктор, который получает аргумент starter -- передать указатель на gemont_1::auto_start():
gemont_1::value_holder_t< std::set< std::string >, unsigned int, gemont_1::stl_container_size< std::set< std::string > > > value( "str1", "my_string", "n/a", &gemont_1::auto_start ); (**value).insert( "my_string" );
gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::value_holder_t | ( | const std::string & | name, | |
const std::string & | data_class | |||
) | [inline] |
Инициализирующий конструктор.
Источник данных создается в остановленном состоянии.
name | Имя источника данных. |
data_class | Имя класса данных. |
Перекрестные ссылки gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::m_ds и gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::m_v.
gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::value_holder_t | ( | const std::string & | name, | |
const std::string & | data_class, | |||
const Access_type & | initial | |||
) | [inline] |
Инициализирующий конструктор.
Источник данных создается в остановленном состоянии.
name | Имя источника данных. |
data_class | Имя класса данных. |
initial | Начальное значение. |
Перекрестные ссылки gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::m_ds и gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::m_v.
gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::value_holder_t | ( | const std::string & | name, | |
const std::string & | data_class, | |||
const Access_type & | initial, | |||
void(*)(abstract_data_source_t &) | starter | |||
) | [inline] |
Инициализирующий конструктор с возможностью автоматического запуска.
name | Имя источника данных. |
data_class | Имя класса данных. |
initial | Начальное значение. |
Перекрестные ссылки gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::m_ds и gemont_1::value_holder_t< Access_type, Data_source_value_type, Value_extractor, Data_source >::m_v.
Документация по Generic MONitoring Tools v.1.4.0. Последние изменения: Mon Oct 20 16:21:28 2008. Создано системой 1.5.7.1 |