/** {@inheritDoc} */
  @Override
  public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
    writer.setBuffer(buf);

    if (!writer.isHeaderWritten()) {
      if (!writer.writeHeader(directType(), fieldsCount())) return false;

      writer.onHeaderWritten();
    }

    switch (writer.state()) {
      case 0:
        if (!writer.writeString("cpSpi", cpSpi)) return false;

        writer.incrementState();

      case 1:
        if (!writer.writeString("key", key)) return false;

        writer.incrementState();

      case 2:
        if (!writer.writeIgniteUuid("sesId", sesId)) return false;

        writer.incrementState();
    }

    return true;
  }