using System.Collections.Generic; namespace com.fpnn.rtm { public delegate void AuthDelegate(long projectId, long uid, bool successful, int errorCode); public delegate void DoneDelegate(int errorCode); public delegate void MessageIdDelegate(long messageId, int errorCode); public delegate void SendMessageDelegate(long messageId, long mtime, int errorCode); public class CheckResult { public int result; public List tags; } public class TextCheckResult : CheckResult { public string text; public List wlist; public string language; } public class FileInfo { //-- Common public string url; //-- File url public int size = 0; //-- File size //-- For image type public string surl; //-- Thumb url, only for image type. //-- For RTM audio public bool isRTMAudio = false; public string language; public int duration = 0; } public class BaseMessage { public byte messageType; public string stringMessage = null; public byte[] binaryMessage = null; public string attrs; public long modifiedTime; public FileInfo fileInfo = null; //-- Compatible with version 2.1.4 and before. [System.Obsolete("Field mtype is deprecated, please use messageType instead.")] public byte mtype { get { return messageType; } set { messageType = value; } } [System.Obsolete("Field mtime is deprecated, please use modifiedTime instead.")] public long mtime { get { return modifiedTime; } set { modifiedTime = value; } } } public class RetrievedMessage : BaseMessage { public long cursorId; //-- Compatible with version 2.1.4 and before. [System.Obsolete("Field id is deprecated, please use cursorId instead.")] public long id { get { return cursorId; } set { cursorId = value; } } } public class TranslatedInfo { public string sourceLanguage; public string targetLanguage; public string sourceText; public string targetText; } public class RTMMessage : BaseMessage { public long fromUid; public long toId; //-- xid public long messageId; public TranslatedInfo translatedInfo = null; //-- Compatible with version 2.1.4 and before. [System.Obsolete("Field mid is deprecated, please use messageId instead.")] public long mid { get { return messageId; } set { messageId = value; } } } public class HistoryMessage : RTMMessage { public long cursorId; //-- Compatible with version 2.1.4 and before. [System.Obsolete("Field id is deprecated, please use cursorId instead.")] public long id { get { return cursorId; } set { cursorId = value; } } } public class HistoryMessageResult { public int count; public long lastCursorId; public long beginMsec; public long endMsec; public List messages; [System.Obsolete("Field lastId is deprecated, please use lastCursorId instead.")] public long lastId { get { return lastCursorId; } set { lastCursorId = value; } } } public delegate void HistoryMessageDelegate(int count, long lastCursorId, long beginMsec, long endMsec, List messages, int errorCode); public enum ConversationType { INVALID = 0, P2P = 1, GROUP = 2, ROOM = 3, } public class Conversation { public long id; public ConversationType conversationType; public int unreadCount; public HistoryMessage lastMessage; } }