Пространство имен so_4::rt


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

Пространство имен системы run-time.


Классы

class  traits_deinit_caller_t
class  traits_init_caller_t
class  a_sobjectizer_t
 Агент a_sobjectizer_t. Подробнее...
struct  msg_start
 Сообщение агента a_sobjectizer. Подробнее...
struct  msg_stop
 Сообщение агента a_sobjectizer. Подробнее...
struct  msg_normal_shutdown
 Сообщение агента a_sobjectizer. Подробнее...
struct  msg_alarm_shutdown
 Сообщение агента a_sobjectizer. Подробнее...
struct  msg_coop_registered
 Сообщение агента a_sobjectizer. Подробнее...
struct  msg_coop_deregistered
 Сообщение агента a_sobjectizer. Подробнее...
struct  so_msg_state
 Сообщение об изменении состояния агента. Подробнее...
struct  msg_global_agent
 Сообщение агента a_sobjectizer. Подробнее...
class  agent_traits_t
 Базовый класс для задания свойств агентов. Подробнее...
class  agent_state_listener_t
 Базовый класс "слушателей" состояния агента. Подробнее...
class  agent_t
 Базовый класс для всех агентов. Подробнее...
class  subscr_hook_t
 Базовый класс hook-а подписки агентов кооперации. Подробнее...
class  agent_coop_t
 Базовый класс кооперации агентов. Подробнее...
class  dyn_coop_controlled_obj_t
 динамической кооперацией. Подробнее...
class  dyn_coop_controlled_templ_t
 определяется динамической кооперацией. Подробнее...
class  dyn_agent_coop_t
 Динамическая кооперация. Подробнее...
class  dyn_agent_coop_helper_t
 Упрощение регистрации динамических коопераций. Подробнее...
class  def_subscr_hook_t
 Обобщенная реализация hook-а подписки агентов. Подробнее...
class  class_handler_t
 Интерфейс объекта для описания класса агента. Подробнее...
class  super_class_binder_t
 Связыватель описания класса с именем базового класса. Подробнее...
class  initial_state_binder_t
 Устанавливатель имени стартового состояния. Подробнее...
class  comm_buf_t
 Коммуникационный буфер переменного размера. Подробнее...
class  dispatcher_t
 Абстрактный базовый класс для всех диспетчеров. Подробнее...
class  event_data_t
 Описатель экземпляра события. Подробнее...
class  evt_handler_t
 Описатель обработчика события. Подробнее...
class  evt_subscr_t
 Информация об инцидентах события. Подробнее...
class  __init_t
 Класс для управления инициализацией и деинициализацией ядра. Подробнее...
class  msg_auto_ptr_t
 Вспомогательный класс для отправки сообщений. Подробнее...
class  msg_handler_t
 Описатель сообщения. Подробнее...
class  msg_fld_binder_t
 Связыватель поля и его обработчика. Подробнее...
class  msg_checker_binder_t
 Связыватель сообщения и функции его проверки. Подробнее...
class  msg_data_t
 Описатель экземпляра сообщения. Подробнее...
class  state_handler_t
 Класс для описания состояния агента. Подробнее...
class  state_event_binder_t
 Связыватель состояния и события. Подробнее...
class  state_on_enter_binder_t
 Связыватель состояния и обработчика входа в состояние. Подробнее...
class  state_on_exit_binder_t
 Связыватель состояния и обработчика входа в состояние. Подробнее...
class  state_merge_binder_t
 Связывает операцию merge с состоянием. Подробнее...
class  state_event_excluder_t
 Изымает указанное событие из состояния. Подробнее...
class  set_on_enter_t
class  set_on_exit_t

Пространства имен

namespace  comm
 Коммуникационные средства SObjectizer.
namespace  impl
 Детали реализации SObjectizer run-time.

Функции для вызова метода-события в зависимости от его формата.

template<class A, class A2>
void call_event (A *a, void(A2::*evt)(), const event_data_t &e)
template<class A, class A2>
void call_event (A *a, void(A2::*evt)(const event_data_t &), const event_data_t &e)
template<class A, class A2, class M>
void call_event (A *a, void(A2::*evt)(const event_data_t &, const M *), const event_data_t &e, const M *m)
template<class A, class A2, class M>
void call_event (A *a, void(A2::*evt)(const event_data_t &, const M &), const event_data_t &e, const M *m)
template<class A, class A2, class M>
void call_event (A *a, void(A2::*evt)(const M *), const event_data_t &e, const M *m)
template<class A, class A2, class M>
void call_event (A *a, void(A2::*evt)(const M &), const event_data_t &e, const M *m)

Определения типов

typedef void(* pfn_action_t )(agent_t *, const event_data_t &)
 Часть реализации SObjectizer-а.
typedef void *(* pfn_msg_creator_t )()
 Часть реализации SObjectizer-а.
typedef void(* pfn_msg_destroyer_t )(void *)
 Часть реализации SObjectizer-а.
typedef so_4::rt::impl::msg_fld_handler_t *(* pfn_create_msg_fld_handler_t )(void *fld_ptr)
 Часть реализации SObjectizer-а.
typedef bool(* pfn_msg_checker_t )(void *)
 Часть реализации SObjectizer-а.
typedef void(* pfn_on_state_enter_t )(so_4::rt::agent_t *agent, const std::string &state_name)
 Указатель на функцию вызова обработчика входа в состояние.
typedef void(* pfn_on_state_exit_t )(so_4::rt::agent_t *agent, const std::string &state_name)
 Указатель на функцию вызова обработчика выхода из состояния.

Функции

static std::string g_a_sobjectizer_name ("a_sobjectizer")
 SOL4_MSG_START (msg_normal_shutdown, so_4::rt::msg_normal_shutdown) SOL4_MSG_START(msg_alarm_shutdown
so_4::rt::msg_alarm_shutdown SOL4_MSG_START (msg_coop_registered, so_4::rt::msg_coop_registered) SOL4_MSG_START(msg_coop_deregistered
so_4::rt::msg_alarm_shutdown
so_4::rt::msg_coop_deregistered 
SOL4_MSG_START (msg_global_agent, so_4::rt::msg_global_agent) SOL4_MSG_START(msg_check_dereg
const std::string & sobjectizer_agent_name ()
 Определение имени агента a_sobjectizer.
void call_send_so_msg_state (so_4::rt::agent_t *a, const std::string &state_name)
 Функция для вызова метода so_on_enter__send_so_msg_state.
void def_subscr_hook (so_4::rt::agent_coop_t &coop,so_4::rt::agent_t &agent_to_subscribe,const std::string &evt_to_subscribe,const std::string &msg_owner,const std::string &msg_name,int priority=0,std::ostream *err=&std::cerr,const evt_subscr_t::dispatching_t &dispatching=evt_subscr_t::normal_dispatching)
 Упрощенный способ установки hook-а подписки типа so_4rt::def_subscr_hook_t.
void def_subscr_hook (so_4::rt::agent_coop_t &coop,so_4::rt::agent_t &agent_to_subscribe,const std::string &evt_to_subscribe,so_4::rt::agent_t &msg_owner,const std::string &msg_name,int priority=0,std::ostream *err=&std::cerr,const evt_subscr_t::dispatching_t &dispatching=evt_subscr_t::normal_dispatching)
 Упрощенный способ установки hook-а подписки типа so_4rt::def_subscr_hook_t.
template<class T>
void dyn_coop_controlled (so_4::rt::dyn_agent_coop_t &to, T *what)
 еще один контролируемый объект.


Типы

typedef void(* so_4::rt::pfn_action_t)(agent_t *, const event_data_t &)
 

Часть реализации SObjectizer-а.

Тип указателя на функцию, которая осуществляет вызов обработчика у агента.

typedef so_4::rt::impl::msg_fld_handler_t*(* so_4::rt::pfn_create_msg_fld_handler_t)(void *fld_ptr)
 

Часть реализации SObjectizer-а.

Указатель на функцию, создающую обработчик поля сообщения.

typedef bool(* so_4::rt::pfn_msg_checker_t)(void *)
 

Часть реализации SObjectizer-а.

Указатель на функцию, проверяющую корректность экземпляра сообщения.

typedef void*(* so_4::rt::pfn_msg_creator_t)()
 

Часть реализации SObjectizer-а.

Указатель на функцию, создающую экземпляр сообщения.

typedef void(* so_4::rt::pfn_msg_destroyer_t)(void *)
 

Часть реализации SObjectizer-а.

Указатель на функцию, уничтожающую экземпляр сообщения.


Функции

template<class A, class A2, class M>
void so_4::rt::call_event A *  a,
void(A2::*)(const M &)  evt,
const event_data_t &  e,
const M *  m
[inline]
 

Начиная с:
v.4.2.6
Вызов обработчика события следующего формата:
void  A2::evt(
  const M & );

Обработчик вызывается только, если указатель на экземпляр события не 0.

Внимание:
Данная функция не может использоваться с компилятором Visual C++ v.6.0.

template<class A, class A2, class M>
void so_4::rt::call_event A *  a,
void(A2::*)(const M *)  evt,
const event_data_t &  e,
const M *  m
[inline]
 

Начиная с:
v.4.2.6
Вызов обработчика события следующего формата:
void  A2::evt(
  const M * );

template<class A, class A2, class M>
void so_4::rt::call_event A *  a,
void(A2::*)(const event_data_t &, const M &)  evt,
const event_data_t &  e,
const M *  m
[inline]
 

Начиная с:
v.4.2.6
Вызов обработчика события следующего формата:
void  A2::evt(
  const so_4::rt::event_data_t &,
  const M & );

Обработчик вызывается только, если указатель на экземпляр события не 0.

Внимание:
Данная функция не может использоваться с компилятором Visual C++ v.6.0.

template<class A, class A2, class M>
void so_4::rt::call_event A *  a,
void(A2::*)(const event_data_t &, const M *)  evt,
const event_data_t &  e,
const M *  m
[inline]
 

Начиная с:
v.4.2.6
Вызов обработчика события следующего формата:
void  A2::evt(
  const so_4::rt::event_data_t &,
  const M * );

template<class A, class A2>
void so_4::rt::call_event A *  a,
void(A2::*)(const event_data_t &)  evt,
const event_data_t &  e
[inline]
 

Начиная с:
v.4.2.6
Вызов обработчика события следующего формата:
void  A2::evt(
  const so_4::rt::event_data_t & );

template<class A, class A2>
void so_4::rt::call_event A *  a,
void(A2::*)()  evt,
const event_data_t &  e
[inline]
 

Начиная с:
v.4.2.6
Вызов обработчика события следующего формата:
void  A2::evt();

void so_4::rt::call_send_so_msg_state so_4::rt::agent_t a,
const std::string &  state_name
 

Функция для вызова метода so_on_enter__send_so_msg_state.

Внимание:
Это внутренняя функция SObjectizer-а. Она описана здесь для поддержки макроса SOL4_CHANGE_STATE_NOTIFY.

void so_4::rt::def_subscr_hook so_4::rt::agent_coop_t coop,
so_4::rt::agent_t agent_to_subscribe,
const std::string &  evt_to_subscribe,
so_4::rt::agent_t msg_owner,
const std::string &  msg_name,
int  priority = 0,
std::ostream *  err = &std::cerr,
const evt_subscr_t::dispatching_t &  dispatching = evt_subscr_t::normal_dispatching
 

Упрощенный способ установки hook-а подписки типа so_4rt::def_subscr_hook_t.

Начиная с:
v.4.2.6
См. также:
so_4::rt::def_subscr_hook_t.
Создает объект so_4::rt::def_subscr_hook_t и передает его в указанную кооперацию.
Аргументы:
coop  Кооперация, в которую должен быть помещен hook.
agent_to_subscribe  Агент, у которого нужно вызывать so_subscribe().
evt_to_subscribe  Имя события, которое нужно подписать.
msg_owner  Агент-владельц сообщения.
msg_name  Имя сообщения инцидента.
priority  Приоритет события.
err  Поток для вывода сообщений об ошибках подписки.
dispatching  Тип диспетчеризации события.

void so_4::rt::def_subscr_hook so_4::rt::agent_coop_t coop,
so_4::rt::agent_t agent_to_subscribe,
const std::string &  evt_to_subscribe,
const std::string &  msg_owner,
const std::string &  msg_name,
int  priority = 0,
std::ostream *  err = &std::cerr,
const evt_subscr_t::dispatching_t &  dispatching = evt_subscr_t::normal_dispatching
 

Упрощенный способ установки hook-а подписки типа so_4rt::def_subscr_hook_t.

Начиная с:
v.4.2.6
См. также:
so_4::rt::def_subscr_hook_t.
Создает объект so_4::rt::def_subscr_hook_t и передает его в указанную кооперацию.
Аргументы:
coop  Кооперация, в которую должен быть помещен hook.
agent_to_subscribe  Агент, у которого нужно вызывать so_subscribe().
evt_to_subscribe  Имя события, которое нужно подписать.
msg_owner  Имя агента-владельца сообщения.
msg_name  Имя сообщения инцидента.
priority  Приоритет события.
err  Поток для вывода сообщений об ошибках подписки.
dispatching  Тип диспетчеризации события.
Примеры:
sample/parent_insend/main.cpp и sample/subscr_hook/main.cpp.

template<class T>
void so_4::rt::dyn_coop_controlled so_4::rt::dyn_agent_coop_t to,
T *  what
[inline]
 

еще один контролируемый объект.

Начиная с:
v.4.2.6
Пример использования:
so_4::rt::dyn_agent_coop_t * coop = new so_4::rt::dyn_agent_coop_t( ... );
so_4::rt::dyn_coop_controlled( *coop, new some_obj_t( ... ) );
Аргументы:
to  Кооперация, которая должна контролировать объект.
what  Динамически созданный контролируемый объект.
Примеры:
sample/dyn_coop_controlled/main.cpp.

const std::string & so_4::rt::sobjectizer_agent_name  ) 
 

Определение имени агента a_sobjectizer.

Возвращает реальное имя агента a_sobjectizer. Именно это имя должно использоваться для отсылки сообщений msg_normal_shutdown, msg_alarm_shutdown и для подписки на сообщения msg_coop_registered, msg_coop_deregistered, msg_global_agent.

Примеры:
sample/chstate/main.cpp, sample/destroyable_traits/main.cpp, sample/dyn_coop_controlled/main.cpp, sample/dyn_reg/main.cpp, sample/filter/c1.cpp, sample/filter/c2.cpp, sample/filter/server.cpp, sample/hello_all/main.cpp, sample/hello_delay/main.cpp, sample/hello_periodic/main.cpp, sample/hello_world/main.cpp, sample/high_traffic/client.cpp, sample/inheritance/main.cpp, sample/parent_insend/main.cpp, sample/raw_channel/tcp_cln.cpp и sample/subscr_hook/main.cpp.


Документация по SObjectizer. Последние изменения: Thu Jan 12 10:52:51 2006. Создано системой  doxygen 1.4.6-NO
Hosted by uCoz