Для отправки сообщений с информацией необходимо динамически создавать экземпляры сообщения:
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 |
| Экземпляр данных сообщения. | |
|
|||||||||
|
Ссылка данные отправляемого сообщения.
|
|
|||||||||
|
Ссылка данные отправляемого сообщения.
|
|
|||||||||
|
Указатель на данные отправляемого сообщения.
|
|
|||||||||
|
Указатель на данные отправляемого сообщения.
|
|
|||||||||
|
Указатель на данные отправляемого сообщения.
|
|
|||||||||
|
Указатель на данные отправляемого сообщения.
|
|
||||||||||||||||||||
|
Отослать сообщение в коммуникационный канал. Если отослать сообщение не удалось, то данные сообщения уничтожаются.
|
|
||||||||||||||||||||||||||||||||
|
Отослать сообщение в коммуникационный канал. Если отослать сообщение не удалось, то данные сообщения уничтожаются.
|
|
||||||||||||||||
|
Отослать сообщение. Если отослать сообщение не удалось, то данные сообщения уничтожаются.
|
|
||||||||||||||||||||||||||||
|
Отослать сообщение. Если отослать сообщение не удалось, то данные сообщения уничтожаются.
|
1.4.6-NO