本文整理汇总了C++中channel::ptr::set_notify方法的典型用法代码示例。如果您正苦于以下问题:C++ ptr::set_notify方法的具体用法?C++ ptr::set_notify怎么用?C++ ptr::set_notify使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类channel::ptr
的用法示例。
在下文中一共展示了ptr::set_notify方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: register_channel
// protected:
void session::register_channel(channel::ptr channel,
result_handler handle_started, result_handler handle_stopped)
{
result_handler stop_handler =
BIND_3(do_remove, _1, channel, handle_stopped);
result_handler start_handler =
BIND_4(handle_start, _1, channel, handle_started, stop_handler);
if (stopped())
{
start_handler(error::service_stopped);
return;
}
if (incoming_)
{
handle_pend(error::success, channel, start_handler);
return;
}
channel->set_notify(notify_);
channel->set_nonce(nonzero_pseudo_random());
result_handler unpend_handler =
BIND_3(do_unpend, _1, channel, start_handler);
pending_.store(channel,
BIND_3(handle_pend, _1, channel, unpend_handler));
}
示例2: start_channel
// protected:
void session::start_channel(channel::ptr channel,
result_handler handle_started)
{
channel->set_notify(notify_on_connect_);
channel->set_nonce(pseudo_random(1, max_uint64));
// The channel starts, invokes the handler, then starts the read cycle.
channel->start(
BIND_3(handle_starting, _1, channel, handle_started));
}