/// <summary> /// Fabrica un mensaje que ha provenido de la red /// </summary> /// <param name="messageData">Los datos del mensajes como un conjunto de bytes</param> /// <returns>Un mensaje de alto nivel</returns> public Message makeMessage(byte[] messageData) { Message message = null; try { Int32 messageType = BitConverter.ToInt32(messageData, 4); if (messageType < 100) { switch (messageType) { case MessageType.ACK: { message = new AckMessage(); message.byteArrayToProperties(messageData); break; } case MessageType.IMALIVE: { message = new ImAliveMessage(); message.byteArrayToProperties(messageData); break; } } } else { Type classType = (Type)messageTypes[messageType]; message = (Message)Activator.CreateInstance(classType); message.byteArrayToProperties(messageData); } } catch (ThreadAbortException e) { throw e; } catch (Exception e) { String s = e.Message; } return(message); }
/// <summary> /// Fabrica un mensaje que ha provenido de la red /// </summary> /// <param name="messageData">Los datos del mensajes como un conjunto de bytes</param> /// <returns>Un mensaje de alto nivel</returns> public Message makeMessage(byte[] messageData) { Message message = null; try { Int32 messageType = BitConverter.ToInt32(messageData, 4); if (messageType < 100) { switch (messageType) { case MessageType.ACK: { message = new AckMessage(); message.byteArrayToProperties(messageData); break; } case MessageType.IMALIVE: { message = new ImAliveMessage(); message.byteArrayToProperties(messageData); break; } } } else { Type classType = (Type)messageTypes[messageType]; message = (Message)Activator.CreateInstance(classType); message.byteArrayToProperties(messageData); } } catch (ThreadAbortException e) { throw e; } catch (Exception e) { String s = e.Message; } return message; }