public byte ReadHeader(ITransport trans, HeaderParams param, OperationsFactory opFac, HotRodOperation op) { byte magic = trans.ReadByte(); //Reads magic byte: indicates whether the header is a request or a response if (magic != HotRodConstants.RESPONSE_MAGIC) { String message = "Invalid magic number! Expected " + HotRodConstants.RESPONSE_MAGIC + "received " + magic; InvalidResponseException e = new InvalidResponseException(message); logger.Warn(e); throw e; } long receivedMessageId = trans.ReadVLong(); //Reads the message ID. Should be similar to the msg ID of the request if (receivedMessageId != param.Messageid && receivedMessageId != 0) { String message = "Invalid Message ID! Expected " + param.Messageid + "received " + receivedMessageId; InvalidResponseException e = new InvalidResponseException(message); logger.Warn(e); throw new InvalidResponseException(message); } byte receivedOpCode = trans.ReadByte(); //Reads the OP Code logger.Trace(String.Format("response code recieved = " + receivedOpCode)); if (receivedOpCode != param.OpRespCode) //Checks whether the recieved OP code is the corrsponding OPCode for the request sent { if (receivedOpCode == HotRodConstants.ERROR_RESPONSE) //In case of any error indication by the server { logger.Warn(String.Format("Error Response Recieved : " + receivedOpCode)); throw new InvalidResponseException("Error Response Recieved"); } logger.Warn(String.Format("Invalid Response Recieved : Expected " + param.OpRespCode + " Recieved " + receivedOpCode)); throw new InvalidResponseException("Invalid Response Operation."); } byte status = trans.ReadByte(); //Reads the status logger.Trace(String.Format("Status : " + status)); byte topchange = trans.ReadByte(); //Reads the Topology change byte. Equals 0 for No Change in topology logger.Trace(String.Format("Topology change indicator value : " + topchange)); int newTopology = param.Topologyid; if (topchange == 1) ReadNewTopologyAndHash(trans, param, opFac, op); return status; }