public static void serialize(OutputStream out, Object object) throws Exception { RegisterPartitionRequestFunction fn = (RegisterPartitionRequestFunction) object; DataOutputStream dos = new DataOutputStream(out); PartitionRequest pr = fn.getPartitionRequest(); // Write PartitionId writePartitionId(dos, pr.getPartitionId()); // Write nodeId dos.writeUTF(pr.getNodeId()); // Write TaskAttemptId writeTaskAttemptId(dos, pr.getRequestingTaskAttemptId()); // Write Partition State writePartitionState(dos, pr.getMinimumState()); } }
public static Object deserialize(ByteBuffer buffer, int length) throws Exception { ByteArrayInputStream bais = new ByteArrayInputStream(buffer.array(), buffer.position(), length); DataInputStream dis = new DataInputStream(bais); // Read PartitionId PartitionId pid = readPartitionId(dis); // Read nodeId String nodeId = dis.readUTF(); // Read TaskAttemptId TaskAttemptId taId = readTaskAttemptId(dis); // Read Partition State PartitionState state = readPartitionState(dis); PartitionRequest pr = new PartitionRequest(pid, nodeId, taId, state); return new RegisterPartitionRequestFunction(pr); }
CCNCFunctions.RegisterPartitionRequestFunction rprf = (CCNCFunctions.RegisterPartitionRequestFunction) fn; ccs.getWorkQueue().schedule(new RegisterPartitionRequestWork(ccs, rprf.getPartitionRequest())); break; case REGISTER_RESULT_PARTITION_LOCATION:
private void serialize(OutputStream out, Object object, byte fid) throws Exception { switch (FunctionId.values()[fid]) { case REGISTER_PARTITION_PROVIDER: RegisterPartitionProviderFunction.serialize(out, object); return; case REGISTER_PARTITION_REQUEST: RegisterPartitionRequestFunction.serialize(out, object); return; case REPORT_PARTITION_AVAILABILITY: ReportPartitionAvailabilityFunction.serialize(out, object); return; case NODE_HEARTBEAT: NodeHeartbeatFunction.serialize(out, object); return; case START_TASKS: StartTasksFunction.serialize(out, object); return; case NOTIFY_TASK_COMPLETE: NotifyTaskCompleteFunction.serialize(out, object); return; case NOTIFY_JOBLET_CLEANUP: NotifyJobletCleanupFunction.serialize(out, object); return; case CLEANUP_JOBLET: CleanupJobletFunction.serialize(out, object); return; } JavaSerializationBasedPayloadSerializerDeserializer.serialize(out, object); }
private Object deserialize(byte fid, ByteBuffer buffer, int length) throws Exception { switch (FunctionId.values()[fid]) { case REGISTER_PARTITION_PROVIDER: return RegisterPartitionProviderFunction.deserialize(buffer, length); case REGISTER_PARTITION_REQUEST: return RegisterPartitionRequestFunction.deserialize(buffer, length); case REPORT_PARTITION_AVAILABILITY: return ReportPartitionAvailabilityFunction.deserialize(buffer, length); case NODE_HEARTBEAT: return NodeHeartbeatFunction.deserialize(buffer, length); case START_TASKS: return StartTasksFunction.deserialize(buffer, length); case NOTIFY_TASK_COMPLETE: return NotifyTaskCompleteFunction.deserialize(buffer, length); case NOTIFY_JOBLET_CLEANUP: return NotifyJobletCleanupFunction.deserialize(buffer, length); case CLEANUP_JOBLET: return CleanupJobletFunction.deserialize(buffer, length); } return javaSerde.deserializeObject(buffer, length); } }
@Override public void registerPartitionRequest(PartitionRequest partitionRequest) throws Exception { RegisterPartitionRequestFunction fn = new RegisterPartitionRequestFunction(partitionRequest); ipcHandle.send(-1, fn, null); }