SObjectizer  5.1
Классы | Открытые члены | Защищенные члены | Закрытые типы | Закрытые члены | Закрытые данные | Полный список членов класса
Класс gemont_2::a_retranslator_base_tabstract

Gemont 2 агент для хранения списка источников данных и передачи их значениний. Подробнее...

Граф наследования:gemont_2::a_retranslator_base_t:
so_5::rt::agent_t so_5::rt::atomic_refcounted_t

Классы

class  msg_periodic_messages_table_check
 Периодическое сообщение, инициирующее проверку кеша ( на отложенные сообщения и чистку старых записей). Подробнее...
 

Открытые члены

 a_retranslator_base_t (so_5::rt::so_environment_t &env, const ACE_Time_Value &sending_time_interval=ACE_Time_Value(0, 250 *1000))
 
const data_source_table_tdata_source_table () const
 
virtual void so_define_agent ()
 Первоначальная инициализация агента. Подробнее...
 
void evt_periodic_messages_table_check (const so_5::rt::event_data_t< msg_periodic_messages_table_check > &msg)
 Периодическая проверка таблицы сообщений.
 
void evt_scalar_value (const so_5::rt::event_data_t< gemont_2::msg_scalar_value > &msg)
 Событие получения значения источника данных.
 
void evt_reg_data_source (const so_5::rt::event_data_t< gemont_2::msg_reg_data_source > &msg)
 Событие регистрации источника данных.
 
void evt_dereg_data_source (const so_5::rt::event_data_t< gemont_2::msg_dereg_data_source > &msg)
 Событие дерегистрации источника данных.
 
- Открытые члены inherited from so_5::rt::agent_t
 agent_t (so_environment_t &env)
 Конструктор агента. Подробнее...
 
const agent_tself_ptr () const
 Получить указатель на себя. Подробнее...
 
virtual void so_evt_start ()
 Начальное событие агента. Подробнее...
 
virtual void so_evt_finish ()
 Завершающее событие агента. Подробнее...
 
const state_tso_current_state () const
 Получить ссылку на текущее состояние.
 
const std::string & so_coop_name () const
 Имя кооперации, к которой принадлежит агент. Подробнее...
 
void so_add_nondestroyable_listener (agent_state_listener_t &state_listener)
 Добавить агенту слушателя, время жизни которого агент не контролирует.
 
void so_add_destroyable_listener (agent_state_listener_unique_ptr_t state_listener)
 Добавить агенту слушателся, владение которым передается агенту.
 
so_environment_tso_environment ()
 Получить ссылку на среду SO к которой принадлежит агент. Подробнее...
 

Защищенные члены

so_5::rt::mbox_ref_t local_mbox ()
 
virtual void on_update (const std::string &data_source_name, const std::string &data_source_data_class, source_id_t id, const data_source_value_t &value, const ACE_Time_Value &timestamp)=0
 Абстрактные методы, которые вызываются по приходу соответствующих сообщений. Подробнее...
 
virtual void on_reg (const std::string &data_source_name, const std::string &data_source_data_class, source_id_t id, const data_source_value_t &value, const ACE_Time_Value &timestamp)=0
 
virtual void on_dereg (const std::string &data_source_name, const std::string &data_source_data_class, source_id_t id)=0
 
- Защищенные члены inherited from so_5::rt::agent_t
bool so_was_defined () const
 Был ли агент определен? Подробнее...
 
const state_tso_default_state () const
 Работа с состояниями. Подробнее...
 
ret_code_t so_change_state (const state_t &new_state, throwing_strategy_t throwing_strategy=THROW_ON_ERROR)
 Сменить состояние. Подробнее...
 
subscription_bind_t so_subscribe (const mbox_ref_t &mbox_ref)
 Подписка и отписка от сообщения. Подробнее...
 
subscription_unbind_t so_unsubscribe (const mbox_ref_t &mbox_ref)
 Создать объект для изьятия подписки. Подробнее...
 

Закрытые типы

typedef so_5::rt::agent_t base_type_t
 

Закрытые члены

void process_data_source_item (source_id_t source_id, data_source_item_t &data_source_item)
 Обработать источник данных. Подробнее...
 

Закрытые данные

so_5::rt::mbox_ref_t m_local_mbox
 Mbox агента для организации периодических сообщений.
 
data_source_table_t m_data_source_table
 Актуальный список источников данных и их значений.
 
const ACE_Time_Value m_sending_time_interval
 Минимальный временной интервал между отправкой сообщений. Подробнее...
 
so_5::timer_thread::timer_id_ref_t m_messages_table_timer
 Таймер периодического сообщения проверки таблицы сообщений.
 

Additional Inherited Members

- Открытые статические члены inherited from so_5::rt::agent_t
static void call_push_event (agent_t &agent, const event_caller_block_ref_t &event_handler_caller, const message_ref_t &message)
 Поставить в очередь событие для выполнения агентом. Подробнее...
 
static void call_next_event (agent_t &agent)
 Инициировать выполнение очередного события. Подробнее...
 
static void call_bind_to_disp (agent_t &agent, dispatcher_t &disp)
 Привязать агента к диспетчеру. Подробнее...
 

Подробное описание

Gemont 2 агент для хранения списка источников данных и передачи их значениний.

Методы

const data_source_table_t & gemont_2::a_retranslator_base_t::data_source_table ( ) const

Получить список источников и их значений. Таблица предназначена только для чтения - в узлах находятся shared_ptr'ы, и при передаче таблицы в другие нити нужно озаботиться клонированием.

Перекрестные ссылки m_data_source_table.

virtual void gemont_2::a_retranslator_base_t::on_dereg ( const std::string &  data_source_name,
const std::string &  data_source_data_class,
source_id_t  id 
)
protectedpure virtual
Аргументы
data_source_nameИмя источника данных.
data_source_data_classКласс источника данных.
idИдентификатор источника данных.

Используется в evt_dereg_data_source().

virtual void gemont_2::a_retranslator_base_t::on_reg ( const std::string &  data_source_name,
const std::string &  data_source_data_class,
source_id_t  id,
const data_source_value_t value,
const ACE_Time_Value &  timestamp 
)
protectedpure virtual
Аргументы
data_source_nameИмя источника данных.
data_source_data_classКласс источника данных.
idИдентификатор источника данных.
valueТекущее значение источника данных.
timestampВремя изменения значения.

Используется в evt_reg_data_source().

virtual void gemont_2::a_retranslator_base_t::on_update ( const std::string &  data_source_name,
const std::string &  data_source_data_class,
source_id_t  id,
const data_source_value_t value,
const ACE_Time_Value &  timestamp 
)
protectedpure virtual

Абстрактные методы, которые вызываются по приходу соответствующих сообщений.

Аргументы
data_source_nameИмя источника данных.
data_source_data_classКласс источника данных.
idИдентификатор источника данных.
valueТекущее значение источника данных.
timestampВремя изменения значения.

Используется в process_data_source_item().

void gemont_2::a_retranslator_base_t::process_data_source_item ( source_id_t  source_id,
data_source_item_t data_source_item 
)
private

Обработать источник данных.

Определяет нужно ли вызывать on_update и обновляет время распростронения значения.

Перекрестные ссылки gemont_2::data_source_item_t::m_actual_value_at, gemont_2::data_source_item_t::m_data_class, gemont_2::data_source_item_t::m_distributed_value_at, gemont_2::data_source_item_t::m_distributed_value_is_actual, gemont_2::data_source_item_t::m_name, m_sending_time_interval, gemont_2::data_source_item_t::m_value и on_update().

Используется в evt_periodic_messages_table_check() и evt_scalar_value().

void gemont_2::a_retranslator_base_t::so_define_agent ( )
virtual

Первоначальная инициализация агента.

Метод определения агента.

Метод, который вызывается до того как агент начнет работать в SO, т.е. до того как начнется его работа на рабочей нити.

class a_sample_t
:
{
// ...
virtual void
void
evt_handler_1(
// ...
void
evt_handler_N(
};
void
a_sample_t::so_define_agent()
{
// Подписываемся на сообщения.
so_subscribe( m_mbox1 )
.in( m_state_1 )
.event( &a_sample_t::evt_handler_1 );
// ...
so_subscribe( m_mboxN )
.in( m_state_N )
.event( &a_sample_t::evt_handler_N );
}

Переопределяет метод предка so_5::rt::agent_t.

Перекрестные ссылки so_5::rt::subscription_bind_t::event(), evt_dereg_data_source(), evt_periodic_messages_table_check(), evt_reg_data_source(), evt_scalar_value(), m_local_mbox, m_messages_table_timer, m_sending_time_interval, so_5::rt::so_environment_t::query_layer(), so_5::rt::so_environment_t::schedule_timer(), so_5::rt::agent_t::so_environment() и so_5::rt::agent_t::so_subscribe().

Данные класса

const ACE_Time_Value gemont_2::a_retranslator_base_t::m_sending_time_interval
private

Минимальный временной интервал между отправкой сообщений.

Заметки
По умолчанию равен 250ms.

Используется в process_data_source_item() и so_define_agent().


Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:21. Создано системой  doxygen1.8.3.1 Intervale SourceForge.net Logo