| 152 | |
| 153 | private: |
| 154 | struct SocketTask { |
| 155 | SocketTask(void* b, size_t s, std::promise<void>&& p) |
| 156 | : buffer(b), size(s), promise(std::move(p)) {} |
| 157 | SocketTask(SocketTask&& t) |
| 158 | : buffer(t.buffer), size(t.size), promise(std::move(t.promise)) {} |
| 159 | void* buffer; |
| 160 | size_t size; |
| 161 | std::promise<void> promise; |
| 162 | }; |
| 163 | |
| 164 | std::future<void> send_impl(const char* buffer, size_t size) { |
| 165 | std::promise<void> send_completed_promise; |