Ejemplo n.º 1
0
        /// <summary>
        /// Processes a received network message
        /// </summary>
        /// <param name="netgram">The netgram received message</param>
        /// <param name="header">The header of the netgram</param>
        /// <param name="buffer">The buffer containing the appgram</param>
        /// <param name="offset">The offset of the appgram within the buffer</param>
        /// <param name="end">The end of the content in the buffer</param>
        private void _processNetworkMessage(NetgramReceivedMessage netgram, NetgramHeader header, byte[] buffer, int offset, int end)
        {
            try
            {
                INetworkMessage message = _createNetworkMessage(header.VendorId, header.MessageType);
                offset = message.Deserialize(buffer, offset, end);

                switch (message.Type)
                {
                case MessageType.WhoIsRouterToNetwork:
                    _processWhoIsRouterToNetworkMessage(netgram, header, (WhoIsRouterToNetworkMessage)message);
                    break;

                case MessageType.IAmRouterToNetwork:
                    _processIAmRouterToNetworkMessage(netgram, header, (IAmRouterToNetworkMessage)message);
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }