/** {@inheritDoc} */
  @Override
  public void closeStream(HadoopIgfsStreamDelegate desc) throws IOException {
    final IgfsStreamControlRequest msg = new IgfsStreamControlRequest();

    msg.command(CLOSE);
    msg.streamId((long) desc.target());

    try {
      io.send(msg).chain(BOOL_RES).get();
    } catch (IgniteCheckedException e) {
      throw HadoopIgfsUtils.cast(e);
    }
  }
  /** {@inheritDoc} */
  @Override
  public void writeData(HadoopIgfsStreamDelegate desc, byte[] data, int off, int len)
      throws IOException {
    final IgfsStreamControlRequest msg = new IgfsStreamControlRequest();

    msg.command(WRITE_BLOCK);
    msg.streamId((long) desc.target());
    msg.data(data);
    msg.position(off);
    msg.length(len);

    try {
      io.sendPlain(msg);
    } catch (IgniteCheckedException e) {
      throw HadoopIgfsUtils.cast(e);
    }
  }