Для отправки сообщений с информацией необходимо динамически создавать экземпляры сообщения:
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 );
Если отправка сообщения прошла неудачно, то экземпляр сообщения будет уничтожен автоматически.
Открытые члены | |
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_t & | operator= (const msg_auto_ptr_t &) |
Защита от копирования. | |
Закрытые данные | |
Msg * | m_msg_data |
Экземпляр данных сообщения. |
|
Ссылка данные отправляемого сообщения.
|
|
Ссылка данные отправляемого сообщения.
|
|
Указатель на данные отправляемого сообщения.
|
|
Указатель на данные отправляемого сообщения.
|
|
Указатель на данные отправляемого сообщения.
|
|
Указатель на данные отправляемого сообщения.
|
|
Отослать сообщение в коммуникационный канал. Если отослать сообщение не удалось, то данные сообщения уничтожаются.
|
|
Отослать сообщение в коммуникационный канал. Если отослать сообщение не удалось, то данные сообщения уничтожаются.
|
|
Отослать сообщение. Если отослать сообщение не удалось, то данные сообщения уничтожаются.
|
|
Отослать сообщение. Если отослать сообщение не удалось, то данные сообщения уничтожаются.
|