private void OnNewMessage(byte[] msg) { MemoryByteStream bs = new MemoryByteStream(msg); byte id = bs.ReadByte(); switch (id) { case _idSelectMachine: { string machineName = Serializer.SelectMachineFromBytes(bs); ReceiveSelectMachine?.Invoke(machineName); } break; case _idAvailableMachines: { List <string> machines = Serializer.AvailableMachinesFromBytes(bs); ReceiveAvailableMachines?.Invoke(machines); } break; case _idCoreAction: { CoreAction coreAction = Serializer.CoreActionFromBytes(bs); ReceiveCoreAction?.Invoke(coreAction); } break; case _idPing: { bool response = bs.ReadBool(); UInt64 pid = bs.ReadUInt64(); ReceivePing?.Invoke(response, pid); } break; case _idRequestAvailableMachines: { ReceiveRequestAvailableMachines?.Invoke(); } break; case _idName: { string machineName = bs.ReadString(); ReceiveName?.Invoke(machineName); } break; case _idCoreRequest: { CoreRequest coreRequest = Serializer.CoreRequestFromBytes(bs); ReceiveCoreRequest?.Invoke(coreRequest); } break; } }
static public List <string> AvailableMachinesFromBytes(MemoryByteStream stream) { List <string> availableMachines = new List <string>(); int count = stream.ReadInt32(); for (int i = 0; i < count; i++) { availableMachines.Add(stream.ReadString()); } return(availableMachines); }
static public string SelectMachineFromBytes(MemoryByteStream stream) { string machineName = stream.ReadString(); return(machineName); }