Шаблон класса so_4::rt::msg_auto_ptr_t< Msg >

Полный список членов класса

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

template<class Msg>
class so_4::rt::msg_auto_ptr_t< Msg >

Вспомогательный класс для отправки сообщений.

Для отправки сообщений с информацией необходимо динамически создавать экземпляры сообщения:

some_msg * p = new some_msg();

Далее, указатель на экземпляр передается в функцию so_4::api::send_msg:

so_4::api::send_msg( some_agent_name, some_msg_name, p );

Если сообщение доставлено нормально, то экземпляр сообщения будет уничтожен автоматически. В противном случае за уничтожение экземпляра сообщения должен отвечать отправитель сообщения:

some_msg * p = new some_msg();
if( so_4::api::send_msg( agent_name, msg_name, p ) ) {
  // Сообщение не было отправлено!
  delete p;
}

Для того, чтобы не контролировать каждый вызов send_msg предназначен шаблонный класс msg_auto_ptr_t:

so_4::rt::msg_auto_ptr_t< some_msg > p( new some_msg() );
p.send( agent_name, msg_name );

Если отправка сообщения прошла неудачно, то экземпляр сообщения будет уничтожен автоматически.

Заметки:
уничтожение осуществляется сразу после неудачной попытке отправки сообщения (т.е. еще до возврата из send).
v.4.2.6
Если экземпляр отсылаемого сообщения полностью инициализируется в конструкторе, то для отсылки сообщения удобнее воспользоваться функциями so_4::api::send_msg_safely(). Подробнее см. so_4: Версия 4.2.6. Упрощение отсылки сообщений.


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

 msg_auto_ptr_t (Msg *msg_data=0)
ret_code_t send (const std::string &agent, const std::string &msg, const std::string &receiver, unsigned int delay=0, unsigned int period=0)
 Отослать сообщение.
ret_code_t send (const std::string &agent, const std::string &msg)
 Отослать сообщение.
ret_code_t send (const comm_channel_t &channel_to, const std::string &agent, const std::string &msg, const std::string &receiver, unsigned int delay=0, unsigned int period=0)
 Отослать сообщение в коммуникационный канал.
ret_code_t send (const comm_channel_t &channel_to, const std::string &agent, const std::string &msg)
 Отослать сообщение в коммуникационный канал.
Msg * ptr ()
 Указатель на данные отправляемого сообщения.
const Msg * ptr () const
 Указатель на данные отправляемого сообщения.
Msg * operator-> ()
 Указатель на данные отправляемого сообщения.
const Msg * operator-> () const
 Указатель на данные отправляемого сообщения.
Msg & operator * ()
 Ссылка данные отправляемого сообщения.
const Msg & operator * () const
 Ссылка данные отправляемого сообщения.

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

 msg_auto_ptr_t (const msg_auto_ptr_t &)
 Защита от копирования.
msg_auto_ptr_toperator= (const msg_auto_ptr_t &)
 Защита от копирования.

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

Msg * m_msg_data
 Экземпляр данных сообщения.


Методы

template<class Msg>
const Msg& so_4::rt::msg_auto_ptr_t< Msg >::operator *  )  const [inline]
 

Ссылка данные отправляемого сообщения.

Внимание:
поведение после вызова send(), либо при получении в конструкторе нулевого указателя не определено.

template<class Msg>
Msg& so_4::rt::msg_auto_ptr_t< Msg >::operator *  )  [inline]
 

Ссылка данные отправляемого сообщения.

Внимание:
поведение после вызова send(), либо при получении в конструкторе нулевого указателя не определено.

template<class Msg>
const Msg* so_4::rt::msg_auto_ptr_t< Msg >::operator->  )  const [inline]
 

Указатель на данные отправляемого сообщения.

Возвращает:
значение, полученное в конструкторе до вызова send(). Нулевой указатель после вызова send().

template<class Msg>
Msg* so_4::rt::msg_auto_ptr_t< Msg >::operator->  )  [inline]
 

Указатель на данные отправляемого сообщения.

Возвращает:
значение, полученное в конструкторе до вызова send(). Нулевой указатель после вызова send().

template<class Msg>
const Msg* so_4::rt::msg_auto_ptr_t< Msg >::ptr  )  const [inline]
 

Указатель на данные отправляемого сообщения.

Возвращает:
значение, полученное в конструкторе до вызова send(). Нулевой указатель после вызова send().

template<class Msg>
Msg* so_4::rt::msg_auto_ptr_t< Msg >::ptr  )  [inline]
 

Указатель на данные отправляемого сообщения.

Возвращает:
значение, полученное в конструкторе до вызова send(). Нулевой указатель после вызова send().

template<class Msg>
ret_code_t so_4::rt::msg_auto_ptr_t< Msg >::send const comm_channel_t &  channel_to,
const std::string &  agent,
const std::string &  msg
[inline]
 

Отослать сообщение в коммуникационный канал.

Если отослать сообщение не удалось, то данные сообщения уничтожаются.

Возвращает:
код возврата функции so_4::rt::send_msg().
Аргументы:
channel_to  Канал, в который нужно отослать сообщение.
agent  Агент-владелец отправляемого сообщения.
msg  Имя отправляемого сообщения.

template<class Msg>
ret_code_t so_4::rt::msg_auto_ptr_t< Msg >::send const comm_channel_t &  channel_to,
const std::string &  agent,
const std::string &  msg,
const std::string &  receiver,
unsigned int  delay = 0,
unsigned int  period = 0
[inline]
 

Отослать сообщение в коммуникационный канал.

Если отослать сообщение не удалось, то данные сообщения уничтожаются.

Возвращает:
код возврата функции so_4::rt::send_msg().
Аргументы:
channel_to  Канал, в который нужно отослать сообщение.
agent  Агент-владелец отправляемого сообщения.
msg  Имя отправляемого сообщения.
receiver  Получатель сообщения. Пустая строка, если нет получателя.

Получатель должен существовать на другом конце коммуникационного канала.

delay  Задержка перед появлением сообщения (для отложенных или переодических сообщений).

Отсчет задержки начнется только после получения сообщения на другом конце канала.

period  Период повтора сообщения (для переодических сообщений).

template<class Msg>
ret_code_t so_4::rt::msg_auto_ptr_t< Msg >::send const std::string &  agent,
const std::string &  msg
[inline]
 

Отослать сообщение.

Если отослать сообщение не удалось, то данные сообщения уничтожаются.

Возвращает:
код возврата функции so_4::rt::send_msg().

template<class Msg>
ret_code_t so_4::rt::msg_auto_ptr_t< Msg >::send const std::string &  agent,
const std::string &  msg,
const std::string &  receiver,
unsigned int  delay = 0,
unsigned int  period = 0
[inline]
 

Отослать сообщение.

Если отослать сообщение не удалось, то данные сообщения уничтожаются.

Возвращает:
код возврата функции so_4::rt::send_msg().
Аргументы:
agent  Агент-владелец отправляемого сообщения.
msg  Имя отправляемого сообщения.
receiver  Получатель сообщения. Пустая строка, если нет получателя.
delay  Задержка перед появлением сообщения (для отложенных или переодических сообщений).
period  Период повтора сообщения (для переодических сообщений).


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