public PacketFlowMessage Map(int senderID, int senderType, NetworkCommand command) { return(new PacketFlowMessage() { senderID = senderID, senderType = senderType, payloadType = command.Match( agn => (int)TransportCommandPayloadType.AddGatewayNode, arn => (int)TransportCommandPayloadType.AddRouterNode, acn => (int)TransportCommandPayloadType.AddConsumerNode, ln => (int)TransportCommandPayloadType.LinkNodes, ap => (int)TransportCommandPayloadType.AddPacket, iptd => (int)TransportCommandPayloadType.IncrementPacketTypeDirection, pnq => (int)TransportCommandPayloadType.ProcessNodeQueue, ct => (int)TransportCommandPayloadType.CompleteTransmission ), payload = JsonUtility.ToJson( command.Match( agn => GetPayloadForAddGatewayNodeCommand(agn), arn => GetPayloadForAddRouterNodeCommand(arn), acn => GetPayloadForAddConsumerNodeCommand(acn), ln => GetPayloadForLinkNodesCommand(ln), ap => GetPayloadForAddPacketCommand(ap), iptd => GetPayloadForIncrementPacketTypeDirectionCommand(iptd), pnq => GetPayloadForProcessNodeQueueCommand(pnq), ct => GetPayloadForCompleteTransmissionCommand(ct) ) ) }); }
public Maybe <NetworkError> HandleCommand(NetworkCommand command) => command.Match( AddGatewayNode, AddRouterNode, AddConsumerNode, LinkNodes, AddPacket, SetPacketTypeDirection, ProcessNodeQueue, CompleteTransmission );