boost::function 通过boost::bind 回调类成员函数

  1.  需要实现回调的类tcp_client
    • 声明function模板
      typedef std::vector<uint8_t> buffer_t;
      typedef boost::function<void(buffer_t&)> recv_callback_t;
    • 设置回调函数
      void tcp_client::set_recv_callback(recv_callback_t cb){
          recv_callback_ = cb; 
      }
  2. 回调函数的实现类network_interface
    • 关联成员函数
      tcp_client *client_ptr = new tcp_client(...);
      client_ptr_->set_recv_callback(boost::bind(&network_interface::recv_callback_, this, _1));
    • 成员函数定义
      void recv_callback_(std::vector<uint8_t>&buf);