| 67 | connection_driver(name), reads(rd), writes(wr), spinning(0) {} |
| 68 | |
| 69 | void do_read() { |
| 70 | mutable_buffer rbuf = read_buffer(); |
| 71 | size_t size = std::min(reads.size(), rbuf.size); |
| 72 | if (size) { |
| 73 | copy(reads.begin(), reads.begin()+size, static_cast<char*>(rbuf.data)); |
| 74 | read_done(size); |
| 75 | reads.erase(reads.begin(), reads.begin()+size); |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | void do_write() { |
| 80 | const_buffer wbuf = write_buffer(); |