/// <summary> /// /// </summary> /// <param name="requestObject"></param> private void DispatchRequest(IMPObject requestObject) { IMessage message = new Message(); if (requestObject.IsNull(CONTROLLER_ID)) { throw new Exception("Request rejected: No Controller ID in request!"); } if (requestObject.IsNull(ACTION_ID)) { throw new Exception("Request rejected: No Action ID in request!"); } message.Id = Convert.ToInt32(requestObject.GetShort(ACTION_ID)); message.Content = requestObject.GetMPObject(PARAM_ID); message.IsUDP = requestObject.ContainsKey(UDP_PACKET_ID); if (message.IsUDP) { message.PacketId = requestObject.GetLong(UDP_PACKET_ID); } int @byte = requestObject.GetByte(CONTROLLER_ID); IController controller = this.bitSwarm.GetController(@byte); if (controller == null) { throw new Exception("Cannot handle server response. Unknown controller, id: " + @byte); } controller.HandleMessage(message); }