| 1315 | |
| 1316 | private: |
| 1317 | static Future<Nothing> _send(network::Socket socket, Pipe::Reader reader) |
| 1318 | { |
| 1319 | return loop( |
| 1320 | None(), |
| 1321 | [=]() mutable { |
| 1322 | return reader.read(); |
| 1323 | }, |
| 1324 | [=](const string& data) mutable -> Future<ControlFlow<Nothing>> { |
| 1325 | if (data.empty()) { |
| 1326 | return Break(); // EOF. |
| 1327 | } |
| 1328 | return socket.send(data) |
| 1329 | .then([]() -> ControlFlow<Nothing> { |
| 1330 | return Continue(); |
| 1331 | }); |
| 1332 | }); |
| 1333 | } |
| 1334 | |
| 1335 | void read() |
| 1336 | { |