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)
                 )
             )
     });
 }
Ejemplo n.º 2
0
 public Maybe <NetworkError> HandleCommand(NetworkCommand command)
 => command.Match(
     AddGatewayNode,
     AddRouterNode,
     AddConsumerNode,
     LinkNodes,
     AddPacket,
     SetPacketTypeDirection,
     ProcessNodeQueue,
     CompleteTransmission
     );