Exemplo n.º 1
0
 internal static extern void nim_msglog_query_msg_async([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string account_id, NIMSessionType to_type, int limit_count, long last_time, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension, QueryMessageLogDelegate cb, IntPtr user_data);
Exemplo n.º 2
0
 internal static extern void nim_msglog_delete_by_session_type_async(bool delete_sessions, NIMSessionType to_type, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension, OperateMsglogByObjectIdDelegate cb, IntPtr user_data);
Exemplo n.º 3
0
 internal static extern void nim_msglog_delete_async([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string account_id, NIMSessionType to_type, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string msg_id, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension, OperateMsglogByLogIdDelegate cb, IntPtr user_data);
Exemplo n.º 4
0
        /// <summary>
        /// 设置会话项扩展数据(扩展数据只保存在本地)
        /// </summary>
        /// <param name="to_type"></param>
        /// <param name="id"></param>
        /// <param name="data"></param>
        /// <param name="cb"></param>
        public static void SetSessionExtendData(NIMSessionType to_type, string id, string data, SessionChangeHandler cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            SessionNativeMethods.nim_session_set_extend_data(to_type, id, data, null, SessionChangeCb, ptr);
        }
Exemplo n.º 5
0
 internal static extern void nim_msglog_query_msg_online_async([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string id, NIMSessionType to_type, int limit_count, long from_time, long end_time, long end_msg_id, bool reverse, bool need_save_to_local, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string json_extension, QueryMessageLogDelegate cb, IntPtr user_data);
Exemplo n.º 6
0
        /// <summary>
        /// 删除指定一条消息
        /// </summary>
        /// <param name="sid"></param>
        /// <param name="sType"></param>
        /// <param name="msgId"></param>
        /// <param name="action"></param>
        public static void DeleteSpecifiedMsglog(string sid, NIMSessionType sType, string msgId, OperateSingleLogResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            MsglogNativeMethods.nim_msglog_delete_async(sid, sType, msgId, null, OperateMsglogByLogIdCompleted, ptr);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 设置会话项是否置顶(置顶属性只保存在本地)
        /// </summary>
        /// <param name="to_type"></param>
        /// <param name="id"></param>
        /// <param name="top"></param>
        /// <param name="cb"></param>
        public static void PinSessionOnTop(NIMSessionType to_type, string id, bool top, SessionChangeHandler cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            SessionNativeMethods.nim_session_set_top(to_type, id, top, null, SessionChangeCb, ptr);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 删除指定会话类型的所有消息
        /// </summary>
        /// <param name="sType">会话类型</param>
        /// <param name="deleteSessions">是否删除指定会话类型的所有会话列表项</param>
        /// <param name="action"></param>
        public static void DeleteMsglogsBySessionType(NIMSessionType sType, bool deleteSessions, OperateMsglogResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            MsglogNativeMethods.nim_msglog_delete_by_session_type_async(deleteSessions, sType, null, OperateMsglogByObjIdCompleted, ptr);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 批量删除指定对话的消息。删除成功后,将相应会话项的最后一条消息的状态kNIMSessionMsgStatus设置为已删除状态
        /// </summary>
        /// <param name="id">会话id,对方的account id或者群组tid</param>
        /// <param name="sType">会话类型</param>
        /// <param name="action"></param>
        public static void BatchDeleteMeglog(string id, NIMSessionType sType, OperateMsglogResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            MsglogNativeMethods.nim_msglog_batch_status_delete_async(id, sType, null, OnOperateMsglogByObjIdCompleted, ptr);
        }
Exemplo n.º 10
0
 private static void OnOperateMsglogByObjIdCompleted(int resCode, string uid, NIMSessionType type, string jsonExtension, IntPtr userData)
 {
     NimUtility.DelegateConverter.InvokeOnce <OperateMsglogResultDelegate>(userData, (ResponseCode)resCode, uid, type);
 }
Exemplo n.º 11
0
        /// <summary>
        ///     批量设置未读状态为已读消息状态
        /// </summary>
        /// <param name="id"></param>
        /// <param name="sType"></param>
        /// <param name="action"></param>
        public static void MarkMessagesStatusRead(string id, NIMSessionType sType, OperateMsglogResultDelegate action)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(action);

            MsglogNativeMethods.nim_msglog_batch_status_read_async(id, sType, null, OperateMsglogByObjIdCompleted, ptr);
        }
Exemplo n.º 12
0
        /// <summary>
        ///     查询本地消息(按时间逆序起查,逆序排列)
        /// </summary>
        /// <param name="accountId">会话id,对方的account id或者群组tid</param>
        /// <param name="sType">会话类型</param>
        /// <param name="limit">一次查询数量,建议20</param>
        /// <param name="msgAnchorTimetag">上次查询最后一条消息的时间戳(按时间逆序起查,即最小的时间戳)</param>
        /// <param name="action"></param>
        public static void QueryMsglogLocally(string accountId, NIMSessionType sType, int limit, long msgAnchorTimetag, QueryMsglogResultDelegate action)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(action);

            MsglogNativeMethods.nim_msglog_query_msg_async(accountId, sType, limit, msgAnchorTimetag, null, QueryLogCompleted, ptr);
        }