/// <summary>
 /// Obtiene la lista de tipos de mensajes usados por este protocolo
 /// </summary>
 /// <returns>Una tabla con valores y tipos de mensajes usados en el protocolo</returns>
 public MessageTypeList getMessageTypes()
 {
     MessageTypeList typeCollection = new MessageTypeList();
     typeCollection.add(SubProtocol.FileTransfer.Types.FILECOMPLETEMESSAGE, typeof(FileCompleteMessage));
     typeCollection.add(SubProtocol.FileTransfer.Types.FILEERRORMESSAGES, typeof(FileErrorMessage));
     typeCollection.add(SubProtocol.FileTransfer.Types.FILEPARTMESSAGE, typeof(FilePartMessage));
     typeCollection.add(SubProtocol.FileTransfer.Types.FILEREQUESTMESSAGE, typeof(FileRequestMessage));
     typeCollection.add(SubProtocol.FileTransfer.Types.FILEWAITMESSAGE, typeof(FileWaitMessage));
     typeCollection.add(SubProtocol.FileTransfer.Types.FILELISTREQUESTMESSAGE, typeof(FileListRequestMessage));
     typeCollection.add(SubProtocol.FileTransfer.Types.FILELISTMESSAGE, typeof(FileListMessage));
     return typeCollection;
 }
 /// <summary>
 /// Obtiene la lista de tipos de mensajes usados por este protocolo
 /// </summary>
 /// <returns>Una tabla con valores y tipos de mensajes usados en el protocolo</returns>
 public MessageTypeList getMessageTypes()
 {
     MessageTypeList typeCollection = new MessageTypeList();
     typeCollection.add(SubProtocol.Ping.Types.PINGMESSAGE, typeof(PingMessage));
     typeCollection.add(SubProtocol.Ping.Types.PINGRESPONSEMESSAGE, typeof(PingResponseMessage));
     return typeCollection;
 }
 /// <summary>
 /// Obtiene la lista de tipos de mensajes usados por este protocolo
 /// </summary>
 /// <returns>Una tabla con valores y tipos de mensajes usados en el protocolo</returns>
 public MessageTypeList getMessageTypes()
 {
     MessageTypeList typeCollection = new MessageTypeList();
     typeCollection.add(SubProtocol.Chat.Types.CHATMESSAGE, typeof(ChatMessage));
     typeCollection.add(SubProtocol.Chat.Types.GROUPCHATMESSAGE, typeof(GroupChatMessage));
     return typeCollection;
 }