SObjectizer предоставляет возможность взаимодействия нескольких написанных с использованием SObjectizer-а программ посредством т.н. "коммуникационных каналов".
Каналы могут быть реализованы посредством различных средств коммуникаций (TCP sockets, pipes, mailsots, ...) и протоколов (SOP, XML, ObjESSty, ...). Каждый канал обслуживается своим агентом-"коммуникатором". Ангет-коммуникатор может обслуживать несколько каналов (например, серверный TCP сокет). Каждый такой канал в агенте-коммуникаторе называется клиентом.
Т.е. каждый канал должен однозначно идентифицироваться именем агента-коммуникатора и именем клиента в агенте-коммуникаторе. Хранением этой пары значений занимается класс comm_channel_t.
Среди всех идентификаторов каналов определено два специальных значения: null (не действительный, нулевой идентификатор) и localhost (только run-time одного приложения).
Открытые члены | |
comm_channel_t () | |
Конструктор по-умолчанию. | |
comm_channel_t (const std::string &comm_agent, const std::string &client) | |
Конструктор для создания отличного от null идентификатора. | |
comm_channel_t (const localhost_mark_t &) | |
Специальный конструктор для случая, когда comm_channel_t должен означать localhost. | |
comm_channel_t (const comm_channel_t &o) | |
Конструктор копирования. | |
comm_channel_t & | operator= (const comm_channel_t &o) |
Оператор копирования. | |
void | swap (comm_channel_t &o) |
Не бросающая исключений опреация swap. | |
bool | is_null () const |
Является ли идентификатор null-значением? | |
const std::string & | comm_agent () const |
Имя агента-коммуникатора. | |
const std::string & | client () const |
Имя клиента в агенте-коммуникаторе. | |
bool | operator== (const comm_channel_t &o) const |
Оператор равенства. | |
bool | operator!= (const comm_channel_t &o) const |
Оператор не равенства. | |
bool | operator< (const comm_channel_t &o) const |
Оператор "строго меньше". | |
std::ostream & | dump (std::ostream &to) const |
Отобразить идентификатор канала в указанный выходной поток. | |
Открытые статические члены | |
static const comm_channel_t & | localhost () |
Получить localhost-идентификатор. | |
Закрытые данные | |
std::auto_ptr< std::string > | m_comm_agent |
Имя агента-коммуникатора. | |
std::auto_ptr< std::string > | m_client |
Имя клиента в коммуникаторе. | |
bool | m_is_localhost |
Признак того, что канал является localhost. | |
Классы | |
struct | localhost_mark_t |
Специальный тип, объекты которого будут использоваться для указания того, что comm_channel_t относится к localhost. Подробнее... |
so_4::rt::comm_channel_t::comm_channel_t | ( | ) |
Конструктор по-умолчанию.
Создает null-идентфикатор.
so_4::rt::comm_channel_t::comm_channel_t | ( | const std::string & | comm_agent, | |
const std::string & | client | |||
) |
Конструктор для создания отличного от null идентификатора.
Корректность передаваемой в параметрах информации не проверяется.
comm_agent | Имя агента-коммуникатора. |
client | Имя клиента в данном коммуникаторе. |
so_4::rt::comm_channel_t::comm_channel_t | ( | const localhost_mark_t & | ) |
Специальный конструктор для случая, когда comm_channel_t должен означать localhost.
const std::string & so_4::rt::comm_channel_t::comm_agent | ( | ) | const |
Имя агента-коммуникатора.
Для null-значения возвращается пустая строка.
Перекрестные ссылки so_4::rt::comm_channel_localhost_consts::comm_agent(), m_comm_agent и m_is_localhost.
Используется в so_4::rt::comm::channel_closer(), dump(), so_4::rt::comm::a_communicator_t::evt_channel_destroyed(), so_4::rt::comm::a_communicator_t::evt_client_connected(), so_4::rt::comm::a_communicator_t::evt_sop_package(), operator<(), operator==(), so_4::rt::comm::impl::process(), so_4::rt::comm::raw_data_processor_t::process_incoming(), so_4::rt::comm::msg_raw_package::unblock_channel() и so_4::rt::comm::msg_sop_package::unblock_channel().
const std::string & so_4::rt::comm_channel_t::client | ( | ) | const |
Имя клиента в агенте-коммуникаторе.
Для null-значения возвращается пустая строка.
Перекрестные ссылки so_4::rt::comm_channel_localhost_consts::client(), m_client и m_is_localhost.
Используется в dump(), so_4::rt::comm::a_channel_processor_base_t::evt_close_channel(), so_4::rt::comm::a_sop_incoming_channel_processor_t::evt_sop_client_handshake(), so_4::rt::comm::a_sop_outgoing_channel_t::evt_sop_client_handshake_resp(), so_4::rt::comm::a_channel_processor_base_t::evt_unblock_channel(), so_4::rt::comm::a_sop_outgoing_channel_t::handle_handshake_response(), operator<() и operator==().
bool so_4::rt::comm_channel_t::operator== | ( | const comm_channel_t & | o | ) | const |
Оператор равенства.
Имена агентов-коммуникаторов и клиентов должны быть равны.
Перекрестные ссылки client(), comm_agent() и m_is_localhost.
bool so_4::rt::comm_channel_t::operator!= | ( | const comm_channel_t & | o | ) | const |
Оператор не равенства.
Сравниваются сначала имена агентов-коммуникаторов, затем, если необходимо, имена клиентов.
bool so_4::rt::comm_channel_t::operator< | ( | const comm_channel_t & | o | ) | const |
Оператор "строго меньше".
Сравниваются сначала имена агентов-коммуникаторов, затем, если необходимо, имена клиентов.
Перекрестные ссылки client() и comm_agent().
const comm_channel_t & so_4::rt::comm_channel_t::localhost | ( | ) | [static] |
Получить localhost-идентификатор.
Возвращает специальную константу, означающую особый канал - localhost (т.е. только локальный узел).
Используется в so_4::rt::comm::msg_sop_client_handshake_resp::check(), so_4::rt::comm::msg_sop_client_handshake::check(), so_4::rt::comm::msg_success::check(), so_4::rt::comm::msg_unblock_channel::check(), so_4::rt::comm::msg_close_channel::check(), so_4::rt::comm::a_communicator_t::evt_global_agent_msg(), so_4::api::send_delayed_or_periodic_msg() и so_4::api::send_non_delayed_non_periodic_msg().
std::ostream & so_4::rt::comm_channel_t::dump | ( | std::ostream & | to | ) | const |
Отобразить идентификатор канала в указанный выходной поток.
{<comm_agent> <client>}
Перекрестные ссылки client() и comm_agent().
Используется в so_4::rt::operator<<().
std::auto_ptr< std::string > so_4::rt::comm_channel_t::m_comm_agent [private] |
Имя агента-коммуникатора.
Сохраняем значение только, если оно задано.
Используется в comm_agent(), is_null() и swap().
std::auto_ptr< std::string > so_4::rt::comm_channel_t::m_client [private] |
bool so_4::rt::comm_channel_t::m_is_localhost [private] |
Признак того, что канал является localhost.
Используется в client(), comm_agent(), is_null(), operator==() и swap().
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:49 2008. Создано системой 1.5.6 |