Класс для реализации понятия клиентского сокета и подключения к удаленному серверному сокету.
Объект не защищен mutex-ом, т.к. предполагается, что вся работа будет осуществляться на одной нити.
Открытые типы | |
enum | use_disconnect_handler_flag_t { use_disconnect_handler, no_use_disconnect_handler } |
Флаг управления обращением к disconnect_handler. Подробнее... | |
Открытые члены | |
sockcln_t (a_sockcln_t &comm_agent, a_sockcln_t::disconnect_handler_t *disconnect_handler) | |
ret_code_t | create (unsigned short port, const char *hostaddr, const char *hostname, std::string &client_name) |
void | close (int is_disconnect_handler_enabled=use_disconnect_handler) |
void | check_incoming_data () |
Проверка наличия входящих данных. | |
void | send_to_client (const std::string &client, const comm_buf_t &data) |
Отсылка данных в канал. | |
a_sockcln_t::disconnect_handler_t * | set_disconnect_handler (a_sockcln_t::disconnect_handler_t *handler) |
Установить обработчик разрывов связи. | |
so_4::rt::comm_channel_t | query_channel () const |
Возвращает идентификатор текущего канала. | |
Закрытые члены | |
void | make_new_client_name (std::string &client_name) |
bool | check_for_data () |
Проверить наличие данных в сокете. | |
void | send_msg_client_disconnected (const std::string &client_name) |
Отослать сообщение о том, что клиент отключился. | |
void | send_msg_sop_package (const std::string &client_name, const comm_buf_t &package) |
Отослать сообщение на разбор SOP-пакета. | |
sockcln_t (const sockcln_t &) | |
sockcln_t & | operator= (const sockcln_t &) |
Закрытые данные | |
a_sockcln_t & | m_comm_agent |
Агент-клиентский сокет. | |
so_4::socket::socket_addr_inet_t | m_addr |
необходимо осуществлять подключение. | |
ref_client_connection_t | m_ref_connection |
Текущее соединение. | |
std::string | m_cur_client_name |
Имя текущего клиента. | |
auto_ptr_3::obj_ptr_t< a_sockcln_t::disconnect_handler_t > | m_disconnect_handler_ptr |
Обработчик разрывов связи. |
|
Флаг управления обращением к disconnect_handler.
|
|
|
|
Проверить наличие данных в сокете. Если происходит сбой чтения данных, то сокет закрывается.
|
|
|
|
Возвращает идентификатор текущего канала.
|
|
Отсылка данных в канал.
|
|
Установить обработчик разрывов связи. Установливаемый обработчик должен быть указателем на динамически-созданный объект, который будет уничтожен в деструкторе.
|
|
Имя текущего клиента. Является пустой строкой, если соединение не установлено. |
|
Обработчик разрывов связи. Нулевое значение означает, что разрывы связи подобным образом не котролируются.
|