public static byte[] messageToBytes(RaftResponseMessage response){ ByteBuffer buffer = ByteBuffer.allocate(RAFT_RESPONSE_HEADER_SIZE); buffer.put(response.getMessageType().toByte()); buffer.put(intToBytes(response.getSource())); buffer.put(intToBytes(response.getDestination())); buffer.put(longToBytes(response.getTerm())); buffer.put(longToBytes(response.getNextIndex())); buffer.put(booleanToByte(response.isAccepted())); return buffer.array(); }
public static byte[] messageToBytes(RaftResponseMessage response){ ByteBuffer buffer = ByteBuffer.allocate(RAFT_RESPONSE_HEADER_SIZE); buffer.put(response.getMessageType().toByte()); buffer.put(intToBytes(response.getSource())); buffer.put(intToBytes(response.getDestination())); buffer.put(longToBytes(response.getTerm())); buffer.put(longToBytes(response.getNextIndex())); buffer.put(booleanToByte(response.isAccepted())); return buffer.array(); }
public static byte[] messageToBytes(RaftRequestMessage request){ LogEntry[] logEntries = request.getLogEntries(); int logSize = 0; List<byte[]> buffersForLogs = null; if(logEntries != null && logEntries.length > 0){ buffersForLogs = new ArrayList<byte[]>(logEntries.length); for(LogEntry logEntry : logEntries){ byte[] logData = logEntryToBytes(logEntry); logSize += logData.length; buffersForLogs.add(logData); } } ByteBuffer requestBuffer = ByteBuffer.allocate(RAFT_REQUEST_HEADER_SIZE + logSize); requestBuffer.put(request.getMessageType().toByte()); requestBuffer.put(intToBytes(request.getSource())); requestBuffer.put(intToBytes(request.getDestination())); requestBuffer.put(longToBytes(request.getTerm())); requestBuffer.put(longToBytes(request.getLastLogTerm())); requestBuffer.put(longToBytes(request.getLastLogIndex())); requestBuffer.put(longToBytes(request.getCommitIndex())); requestBuffer.put(intToBytes(logSize)); if(buffersForLogs != null){ for(byte[] logData : buffersForLogs){ requestBuffer.put(logData); } } return requestBuffer.array(); }
public static byte[] messageToBytes(RaftRequestMessage request){ LogEntry[] logEntries = request.getLogEntries(); int logSize = 0; List<byte[]> buffersForLogs = null; if(logEntries != null && logEntries.length > 0){ buffersForLogs = new ArrayList<byte[]>(logEntries.length); for(LogEntry logEntry : logEntries){ byte[] logData = logEntryToBytes(logEntry); logSize += logData.length; buffersForLogs.add(logData); } } ByteBuffer requestBuffer = ByteBuffer.allocate(RAFT_REQUEST_HEADER_SIZE + logSize); requestBuffer.put(request.getMessageType().toByte()); requestBuffer.put(intToBytes(request.getSource())); requestBuffer.put(intToBytes(request.getDestination())); requestBuffer.put(longToBytes(request.getTerm())); requestBuffer.put(longToBytes(request.getLastLogTerm())); requestBuffer.put(longToBytes(request.getLastLogIndex())); requestBuffer.put(longToBytes(request.getCommitIndex())); requestBuffer.put(intToBytes(logSize)); if(buffersForLogs != null){ for(byte[] logData : buffersForLogs){ requestBuffer.put(logData); } } return requestBuffer.array(); }