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);
}
}