- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
auto write = [&buf](future<int> size) -> future<bool> {
return streamW.write(size.get(), buf).then(
[](future<int> op){
return op.get() > 0; }); };
auto flse = [](future<int> op){
return future::make_ready_future(false);}; auto copy = do_while(
[&buf]() -> future<bool> {
return streamR.read(512, buf) .then(
[](future<int> op){ return (op.get() > 0) ? write : flse;}); });
///////////////////////////////////////////////////////////////////////////
int cnt = 0;
do {
cnt = await streamR.read(512, buf);
if ( cnt == 0 ) break;
cnt = await streamW.write(cnt, buf);
} while (cnt > 0);