|
|
|
@ -99,6 +99,8 @@ public:
|
|
|
|
|
template<class callback_t>
|
|
|
|
|
bool for_connection(const boost::uuids::uuid &connection_id, const callback_t &cb);
|
|
|
|
|
size_t get_connections_count();
|
|
|
|
|
size_t get_out_connections_count();
|
|
|
|
|
size_t get_in_connections_count();
|
|
|
|
|
void set_handler(levin_commands_handler<t_connection_context>* handler, void (*destroy)(levin_commands_handler<t_connection_context>*) = NULL);
|
|
|
|
|
|
|
|
|
|
async_protocol_handler_config():m_pcommands_handler(NULL), m_pcommands_handler_destroy(NULL), m_max_packet_size(LEVIN_DEFAULT_MAX_PACKET_SIZE), m_invoke_timeout(LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED)
|
|
|
|
@ -882,6 +884,28 @@ size_t async_protocol_handler_config<t_connection_context>::get_connections_coun
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------------------
|
|
|
|
|
template<class t_connection_context>
|
|
|
|
|
size_t async_protocol_handler_config<t_connection_context>::get_out_connections_count()
|
|
|
|
|
{
|
|
|
|
|
CRITICAL_REGION_LOCAL(m_connects_lock);
|
|
|
|
|
size_t count = 0;
|
|
|
|
|
for (const auto &c: m_connects)
|
|
|
|
|
if (!c.second->m_connection_context.m_is_income)
|
|
|
|
|
++count;
|
|
|
|
|
return count;
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------------------
|
|
|
|
|
template<class t_connection_context>
|
|
|
|
|
size_t async_protocol_handler_config<t_connection_context>::get_in_connections_count()
|
|
|
|
|
{
|
|
|
|
|
CRITICAL_REGION_LOCAL(m_connects_lock);
|
|
|
|
|
size_t count = 0;
|
|
|
|
|
for (const auto &c: m_connects)
|
|
|
|
|
if (c.second->m_connection_context.m_is_income)
|
|
|
|
|
++count;
|
|
|
|
|
return count;
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------------------
|
|
|
|
|
template<class t_connection_context>
|
|
|
|
|
void async_protocol_handler_config<t_connection_context>::set_handler(levin_commands_handler<t_connection_context>* handler, void (*destroy)(levin_commands_handler<t_connection_context>*))
|
|
|
|
|
{
|
|
|
|
|
if (m_pcommands_handler && m_pcommands_handler_destroy)
|
|
|
|
|