void
 do_read()
 {
     using boost::asio::buffer;
     using boost::asio::buffer_copy;
     s_.resize(13);
     fc_.emplace(n_);
     ts_.emplace(ioc_, *fc_, ", world!");
     brs_.emplace(*ts_);
     brs_->buffer().commit(buffer_copy(
         brs_->buffer().prepare(5), buffer("Hello", 5)));
     boost::asio::async_read(*brs_,
         buffer(&s_[0], s_.size()),
             std::bind(
                 &loop::on_read,
                 shared_from_this(),
                 std::placeholders::_1,
                 std::placeholders::_2));
 }