public ChannelBuffer constructHeader(MemcachedBinaryCommandDecoder.BinaryCommand bcmd, ChannelBuffer extrasBuffer, ChannelBuffer keyBuffer, ChannelBuffer valueBuffer, short responseCode, int opaqueValue, long casUnique) {
// take the ResponseMessage and turn it into a binary payload.
ChannelBuffer header = ChannelBuffers.buffer(ByteOrder.BIG_ENDIAN, 24);
header.writeByte((byte)0x81); // magic
header.writeByte(bcmd.code); // opcode
short keyLength = (short) (keyBuffer != null ? keyBuffer.capacity() :0);
header.writeShort(keyLength);
int extrasLength = extrasBuffer != null ? extrasBuffer.capacity() : 0;
header.writeByte((byte) extrasLength); // extra length = flags + expiry