| 184 | } |
| 185 | |
| 186 | inline void WriteImpl(const void* buf, size_t len) { |
| 187 | char tmp[32]; |
| 188 | char* e = tmp + sizeof(tmp); |
| 189 | char* b = ToHex(len, e); |
| 190 | |
| 191 | const TPart parts[] = { |
| 192 | TPart(b, e - b), |
| 193 | TPart::CrLf(), |
| 194 | TPart(buf, len), |
| 195 | TPart::CrLf(), |
| 196 | }; |
| 197 | |
| 198 | Slave_->Write(parts, sizeof(parts) / sizeof(*parts)); |
| 199 | } |
| 200 | |
| 201 | inline void Flush() { |
| 202 | Slave_->Flush(); |