C
Christopher
I want to make a callback that also calls back.
I cannot get the code to compile.
I read on the boost documentation about apply()., but the example is
unclear and I am not sure if that is what I am looking for.
/// Smart Pointer
typedef boost::shared_ptr<TcpServerSideConnection> SmartPtr;
/// Callback function pointer type for TcpListener notification that
our execution of
/// TcpServerSideConnection::OnConnectionAccepted has completed
typedef boost::function<void(TcpServerSideConnection::SmartPtr
newConnection,
const boost::system::error_code &
error)> ConnectionAcceptedListenerCallback;
/// Callback function pointer type for TcpServerSideConnection
notification of
/// a TcpListener::Listen IO completion
typedef boost::function<void(ConnectionAcceptedListenerCallback
listenerCallback,
const boost::system::error_code &
error)> ConnectionAcceptedCallback;
TcpListener::SmartPtr me = boost::dynamic_pointer_cast<TcpListener,
TcpBaseSocket>(shared_from_this());
TcpServerSideConnection::ConnectionAcceptedListenerCallback
listenerCallback =
boost::bind(&TcpListener::OnConnectionAccepted, me, _1, _2);
TcpServerSideConnection::ConnectionAcceptedCallback
acceptCompleteCallback =
boost::bind(&TcpServerSideConnection::OnConnectionAccepted,
newConnection, listenerCallback, boost::asio:laceholders::error);
acceptor_.async_accept(newConnection->GetSocket(),
acceptCompleteCallback);
Gives me a compile error in bind.hpp with 100s of pages.
What am I doing wrong here?
Does anyone have an example of a callback that callsback using
boost::bind?
I cannot get the code to compile.
I read on the boost documentation about apply()., but the example is
unclear and I am not sure if that is what I am looking for.
/// Smart Pointer
typedef boost::shared_ptr<TcpServerSideConnection> SmartPtr;
/// Callback function pointer type for TcpListener notification that
our execution of
/// TcpServerSideConnection::OnConnectionAccepted has completed
typedef boost::function<void(TcpServerSideConnection::SmartPtr
newConnection,
const boost::system::error_code &
error)> ConnectionAcceptedListenerCallback;
/// Callback function pointer type for TcpServerSideConnection
notification of
/// a TcpListener::Listen IO completion
typedef boost::function<void(ConnectionAcceptedListenerCallback
listenerCallback,
const boost::system::error_code &
error)> ConnectionAcceptedCallback;
TcpListener::SmartPtr me = boost::dynamic_pointer_cast<TcpListener,
TcpBaseSocket>(shared_from_this());
TcpServerSideConnection::ConnectionAcceptedListenerCallback
listenerCallback =
boost::bind(&TcpListener::OnConnectionAccepted, me, _1, _2);
TcpServerSideConnection::ConnectionAcceptedCallback
acceptCompleteCallback =
boost::bind(&TcpServerSideConnection::OnConnectionAccepted,
newConnection, listenerCallback, boost::asio:laceholders::error);
acceptor_.async_accept(newConnection->GetSocket(),
acceptCompleteCallback);
Gives me a compile error in bind.hpp with 100s of pages.
What am I doing wrong here?
Does anyone have an example of a callback that callsback using
boost::bind?