class HandshakeMessage2 extends HandshakeMessage {
    /** */
    private static final long serialVersionUID = 0L;

    /** Message size in bytes including {@link HandshakeMessage} fields. */
    public static final int HANDSHAKE2_MESSAGE_SIZE = MESSAGE_FULL_SIZE + 4;

    /** */
    private int connIdx;

    /**
     *
     */
    public HandshakeMessage2() {
        // No-op.
    }

    /**
     * @param nodeId Node ID.
     * @param connectCnt Connect count.
     * @param rcvCnt Number of received messages.
     * @param connIdx Connection index.
     */
    public HandshakeMessage2(UUID nodeId, long connectCnt, long rcvCnt, int connIdx) {
        super(nodeId, connectCnt, rcvCnt);

        this.connIdx = connIdx;
    }

    /** {@inheritDoc} */
    @Override public short directType() {
        return -44;
    }

    /** {@inheritDoc} */
    @Override public int connectionIndex() {
        return connIdx;
    }

    /** {@inheritDoc} */
    @Override public int getMessageSize() {
        return HANDSHAKE2_MESSAGE_SIZE;
    }

    /** {@inheritDoc} */
    @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
        if (!super.writeTo(buf, writer))
            return false;

        if (buf.remaining() < 4)
            return false;

        buf.putInt(connIdx);

        return true;
    }

    /** {@inheritDoc} */
    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public String toString() {
        return S.toString(HandshakeMessage2.class, this, super.toString());
    }
}

        if (!super.readFrom(buf, reader))
            return false;

        if (buf.remaining() < 4)
            return false;

        connIdx = buf.getInt();

        return true;
    
<methods>public void <init>() ,public void <init>(java.util.UUID, long, long) ,public long connectCount() ,public int connectionIndex() ,public short directType() ,public byte fieldsCount() ,public int getMessageSize() ,public java.util.UUID nodeId() ,public void onAckReceived() ,public boolean readFrom(java.nio.ByteBuffer, org.apache.ignite.plugin.extensions.communication.MessageReader) ,public long received() ,public java.lang.String toString() ,public boolean writeTo(java.nio.ByteBuffer, org.apache.ignite.plugin.extensions.communication.MessageWriter) <variables>public static final int MESSAGE_FULL_SIZE,private static final int MESSAGE_SIZE,private long connectCnt,private java.util.UUID nodeId,private long rcvCnt,private static final long serialVersionUID