| 192 | } |
| 193 | |
| 194 | public static void writeAll(final DataSink sink, final ByteBufferList bb, final CompletedCallback callback) { |
| 195 | WritableCallback wc; |
| 196 | sink.setWriteableCallback(wc = new WritableCallback() { |
| 197 | @Override |
| 198 | public void onWriteable() { |
| 199 | sink.write(bb); |
| 200 | if (bb.remaining() == 0 && callback != null) { |
| 201 | sink.setWriteableCallback(null); |
| 202 | callback.onCompleted(null); |
| 203 | } |
| 204 | } |
| 205 | }); |
| 206 | wc.onWriteable(); |
| 207 | } |
| 208 | public static void writeAll(DataSink sink, byte[] bytes, CompletedCallback callback) { |
| 209 | ByteBuffer bb = ByteBufferList.obtain(bytes.length); |
| 210 | bb.put(bytes); |