public void DelegateConverter_Ctr2NullTest()
 {
     try
     {
         var x = new DelegateConverter((ValueConversion)null);
     }
     catch (ArgumentNullException ex)
     {
         Assert.AreEqual("convert", ex.ParamName);
     }
 }
        public void DelegateConverter_Ctr2Test()
        {
            ValueConversion convert = (v, t, p, c) => v.ToString();
            ValueConversion convertBack = (v, t, p, c) => int.Parse(v.ToString());

            var converter = new DelegateConverter(convert, convertBack);
            var result = converter.Convert(5, null, null, null);
            Assert.AreEqual("5", result);

            var result2 = converter.ConvertBack("5", null, null, null);
            Assert.AreEqual(5, result2);
        }
        public void DelegateConverter_Ctr4Test()
        {
            Func<object, object> convert = (v) => v.ToString();
            Func<object, object> convertBack = (v) => int.Parse(v.ToString());

            var converter = new DelegateConverter(convert, convertBack);
            var result = converter.Convert(5, null, null, null);
            Assert.AreEqual("5", result);

            var result2 = converter.ConvertBack("5", null, null, null);
            Assert.AreEqual(5, result2);
        }
        public void DelegateConverter_Ctr3Test()
        {
            Func<object, object> convert = (v) => v.ToString();
            var converter = new DelegateConverter(convert);
            var result = converter.Convert(5, null, null, null);
            Assert.AreEqual("5", result);
            try
            {
                converter.ConvertBack(5, null, null, null);
                Assert.Fail("Expected an exception");
            }
            catch (NotImplementedException)
            {

            }
        }
示例#5
0
 static CFFICSLoader()
 {
     val_type = new DelegateConverter<ValTypeDelegate>(new ValTypeDelegate(cs_val_type));
     alloc_kind = new DelegateConverter<AllocKindDelegate>(new AllocKindDelegate(cs_alloc_kind));
     alloc_abstract = new DelegateConverter<AllocAbstractDelegate>(new AllocAbstractDelegate(cs_alloc_abstract));
     free_abstract = new DelegateConverter<FreeAbstractDelegate>(new FreeAbstractDelegate(cs_free_abstract));
     val_to_kind = new DelegateConverter<ValToKindDelegate>(new ValToKindDelegate(cs_val_to_kind));
     val_data = new DelegateConverter<ValDataDelegate>(new ValDataDelegate(cs_val_data));
     val_array_int = new DelegateConverter<ValArrayIntDelegate>(new ValArrayIntDelegate(cs_val_array_int));
     alloc_bool = new DelegateConverter<AllocBoolDelegate>(new AllocBoolDelegate(cs_alloc_bool));
     alloc_null = new DelegateConverter<AllocNullDelegate>(new AllocNullDelegate(cs_alloc_null));
     create_root = new DelegateConverter<CreateRootDelegate>(new CreateRootDelegate(cs_create_root));
     query_root = new DelegateConverter<QueryRootDelegate>(new QueryRootDelegate(cs_query_root));
     destroy_root = new DelegateConverter<DestroyRootDelegate>(new DestroyRootDelegate(cs_destroy_root));
     val_gc = new DelegateConverter<ValGCDelegate>(new ValGCDelegate(cs_val_gc));
     val_number = new DelegateConverter<ValNumberDelegate>(new ValNumberDelegate(cs_val_number));
     val_strlen = new DelegateConverter<ValStrLenDelegate>(new ValStrLenDelegate(cs_val_strlen));
     val_string = new DelegateConverter<ValStringDelegate>(new ValStringDelegate(cs_val_string));
     val_int = new DelegateConverter<ValIntDelegate>(new ValIntDelegate(cs_val_int));
     alloc_int = new DelegateConverter<AllocIntDelegate>(new AllocIntDelegate(cs_alloc_int));
     alloc_array = new DelegateConverter<AllocArrayDelegate>(new AllocArrayDelegate(cs_alloc_array));
     alloc_array_type = new DelegateConverter<AllocArrayTypeDelegate>(new AllocArrayTypeDelegate(cs_alloc_array_type));
     val_array_size = new DelegateConverter<ValArraySizeDelegate>(new ValArraySizeDelegate(cs_val_array_size));
     val_array_i = new DelegateConverter<ValArrayIDelegate>(new ValArrayIDelegate(cs_val_array_i));
     val_array_set_i = new DelegateConverter<ValArraySetIDelegate>(new ValArraySetIDelegate(cs_val_array_set_i));
     val_array_push = new DelegateConverter<ValArrayPushDelegate>(new ValArrayPushDelegate(cs_val_array_push));
     val_id = new DelegateConverter<ValIdDelegate>(new ValIdDelegate(cs_val_id));
     alloc_field = new DelegateConverter<AllocFieldDelegate>(new AllocFieldDelegate(cs_alloc_field));
     val_call0 = new DelegateConverter<ValCall0Delegate>(new ValCall0Delegate(cs_val_call0));
     alloc_empty_object = new DelegateConverter<AllocEmptyObjectDelegate>(new AllocEmptyObjectDelegate(cs_alloc_empty_object));
     alloc_string_len = new DelegateConverter<AllocStringLenDelegate>(new AllocStringLenDelegate(cs_alloc_string_len));
     alloc_wstring_len = new DelegateConverter<AllocWStringLenDelegate>(new AllocWStringLenDelegate(cs_alloc_wstring_len));
     alloc_float = new DelegateConverter<AllocFloatDelegate>(new AllocFloatDelegate(cs_alloc_float));
     alloc_buffer_len = new DelegateConverter<AllocBufferLenDelegate>(new AllocBufferLenDelegate(cs_alloc_buffer_len));
     buffer_data = new DelegateConverter<BufferDataDelegate>(new BufferDataDelegate(cs_buffer_data));
     buffer_val = new DelegateConverter<BufferValDelegate>(new BufferValDelegate(cs_buffer_val));
     val_to_buffer = new DelegateConverter<ValToBufferDelegate>(new ValToBufferDelegate(cs_val_to_buffer));
     buffer_set_size = new DelegateConverter<BufferSetSizeDelegate>(new BufferSetSizeDelegate(cs_buffer_set_size));
     buffer_size = new DelegateConverter<BufferSizeDelegate>(new BufferSizeDelegate(cs_buffer_size));
     pin_buffer = new DelegateConverter<PinBufferDelegate>(new PinBufferDelegate(cs_pin_buffer));
     unpin_buffer = new DelegateConverter<UnPinBufferDelegate>(new UnPinBufferDelegate(cs_unpin_buffer));
     val_field = new DelegateConverter<ValFieldDelegate>(new ValFieldDelegate(cs_val_field));
     val_bool = new DelegateConverter<ValBoolDelegate>(new ValBoolDelegate(cs_val_bool));
     val_throw = new DelegateConverter<ValThrowDelegate>(new ValThrowDelegate(cs_val_throw));
     empty = new DelegateConverter<EmptyDelegate>(new EmptyDelegate(cs_empty));
 }
示例#6
0
        /// <summary>
        ///     设置、取消设置黑名单.
        /// </summary>
        /// <param name="accountId"> 好友id.</param>
        /// <param name="inBlacklist">if set to <c>true</c> [set_black].</param>
        /// <param name="cb">操作结果回调.</param>
        public static void SetBlacklist(string accountId, bool inBlacklist, UserOperationDelegate cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            UserNativeMethods.nim_user_set_black(accountId, inBlacklist, null, ModifyBlacklistDelegate, ptr);
        }
示例#7
0
        /// <summary>
        /// 安全链接(短链)换源链接
        /// </summary>
        /// <param name="safeUrl">安全链接(短链)</param>
        /// <param name="cb"></param>
        public static void ConvertSafeUrlToOrigin(string safeUrl, SafeUrlConverterCb cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            NosNativeMethods.nim_nos_safeurl_to_originurl(safeUrl, null, SafeUrlConverterCallback, ptr);
        }
示例#8
0
 private static void ExceptionReport(NIMSDKException exception, string log, IntPtr user_data)
 {
     DelegateConverter.Invoke <nim_sdk_exception_cb_func>(user_data, exception, log, IntPtr.Zero);
 }
示例#9
0
 private static void OnProxyDetectionCompleted(bool network_connect, NIMProxyDetectStep step, string json_params, IntPtr user_data)
 {
     DelegateConverter.InvokeOnce <NimProxyDetectionDelegate>(user_data, network_connect, step);
 }
示例#10
0
        private static void OnGetCacheFileInfoCompleted(string info, IntPtr user_data)
        {
            var cacheInfo = CacheFileInfo.Deserialize(info);

            DelegateConverter.InvokeOnce <GetCacheFileInfoDelegate>(user_data, cacheInfo);
        }
示例#11
0
        /// <summary>
        /// 注册输出系统环境异常的回调
        /// </summary>
        /// <param name="cb"></param>
        public static void RegExceptionReportCb(nim_sdk_exception_cb_func cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            NIMGlobalNativeMethods.nim_global_reg_exception_report_cb(null, ExceptionReportCb, ptr);
        }
示例#12
0
        public static void SetStartNotifyCallback(OnStartNotify cb)
        {
            var ptr1 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_start_notify_cb_func(StartNotifyCb, ptr1);
        }
示例#13
0
 private static void OnReLoginCallback(int code, string session_id, int channel_type, string json_extension, IntPtr user_data)
 {
     DelegateConverter.InvokeOnce <NimRtsOptCbFunc>(user_data, code, session_id, channel_type, json_extension, IntPtr.Zero);
 }
示例#14
0
        /// <summary>
        /// 重连接口
        /// </summary>
        /// <param name="session_id">会话id</param>
        /// <param name="channel_type">通道类型,暂时只支持白板类型</param>
        /// <param name="json_extension">无效的扩展字段</param>
        /// <param name="cb">返回重连操作结果</param>
        private static void ReLogin(string session_id, int channel_type, string json_extension, NimRtsOptCbFunc cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_relogin(session_id, channel_type, json_extension, OnReLoginCallback, ptr);
        }
示例#15
0
 public void DelegateConverter_CtrNullTest()
 {
     try
     {
         var x = new DelegateConverter((Func<object, object>)null);
     }
     catch (ArgumentNullException ex)
     {
         Assert.AreEqual("convert", ex.ParamName);
     }
 }
示例#16
0
        /// <summary>
        ///     获取用户关系列表(黑名单和静音列表)
        /// </summary>
        /// <param name="resultDelegate"></param>
        public static void GetRelationshipList(GetUserRelationshipResuleDelegate resultDelegate)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(resultDelegate);

            UserNativeMethods.nim_user_get_mute_blacklist("Blacklist", _syncMutedAndBlacklistCompleted, ptr);
        }
示例#17
0
 public IntPtr ToIntPtr()
 {
     return(DelegateConverter.ConvertToIntPtr(this));
 }
示例#18
0
        public static void SetAckNotifyCallback(OnAckNotify cb)
        {
            var ptr2 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_ack_notify_cb_func(AckNotifyCb, ptr2);
        }
示例#19
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);
        }
示例#20
0
        public static void SetSyncAckNotifyCallback(OnSyncAckNotify cb)
        {
            var ptr3 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_sync_ack_notify_cb_func(SyncAckNotifyCb, ptr3);
        }
示例#21
0
 private static void OnDeleteCacheCompleted(ResponseCode rescode, IntPtr user_data)
 {
     DelegateConverter.InvokeOnce <DeleteCacheFileDelegate>(user_data, rescode);
 }
示例#22
0
        public static void SetMemberChangedNotifyCallback(OnMemberNotify cb)
        {
            var ptr5 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_member_change_cb_func(MemberChangeCb, ptr5);
        }
示例#23
0
 private static void WriteSdkLog(int log_level, string log, IntPtr user_data)
 {
     DelegateConverter.Invoke <NimWriteLogDelegate>(user_data, log_level, log);
 }
示例#24
0
        public static void SetControlNotifyCallback(OnControlNotify cb)
        {
            var ptr6 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_control_notify_cb_func(ControlNotifyCb, ptr6);
        }
示例#25
0
        /// <summary>
        /// 测试代理
        /// </summary>
        /// <param name="type">代理类型</param>
        /// <param name="host">代理地址</param>
        /// <param name="port">代理端口</param>
        /// <param name="user">代理用户名</param>
        /// <param name="password">代理密码</param>
        /// <param name="cb"></param>
        public static void DetectProxy(NIMProxyType type, string host, int port, string user, string password, NimProxyDetectionDelegate cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            NIMGlobalNativeMethods.nim_global_detect_proxy(type, host, port, user, password, ProxyDetectionCallback, ptr);
        }
示例#26
0
        public static void SetHungupNotify(OnHangupNotify cb)
        {
            var ptr7 = DelegateConverter.ConvertToIntPtr(cb);

            RtsNativeMethods.nim_rts_set_hangup_notify_cb_func(HangupNotifyCb, ptr7);
        }
示例#27
0
 private static void OnConvertSafeUrlResult(int rescode, string originUrl, IntPtr userData)
 {
     DelegateConverter.InvokeOnce <SafeUrlConverterCb>(userData, rescode, originUrl, IntPtr.Zero);
 }
示例#28
0
        public static void SetReceiveDataCallback(OnRecData callback)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(callback);

            RtsNativeMethods.nim_rts_set_rec_data_cb_func(RecDataCb, ptr);
        }
示例#29
0
        private static void OnNosInitCompleted(NIMNosInitConfigResultType rescode, string json_result, string json_extension, IntPtr user_data)
        {
            NIMNosInitResult initResult = NIMNosInitResult.Deserialize(json_result);

            DelegateConverter.InvokeOnce <NIMNosInitResultCallback>(user_data, initResult);
        }
示例#30
0
        /// <summary>
        ///     会话控制(透传)
        /// </summary>
        /// <param name="sessionId">会话id</param>
        /// <param name="info">透传内容</param>
        /// <param name="controlResHandler">结果回调</param>
        public static void Control(string sessionId, string info, ControlResHandler controlResHandler)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(controlResHandler);

            RtsNativeMethods.nim_rts_control(sessionId, info, "", ControlResCb, ptr);
        }
示例#31
0
        /// <summary>
        ///     设置、取消设置静音名单
        /// </summary>
        /// <param name="accountId">好友id</param>
        /// <param name="isMuted">取消或设置</param>
        /// <param name="cb">操作结果回调</param>
        public static void SetUserMuted(string accountId, bool isMuted, UserOperationDelegate cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            UserNativeMethods.nim_user_set_mute(accountId, isMuted, null, ModifyMutedlistDelegate, ptr);
        }
示例#32
0
        /// <summary>
        ///     结束会话
        /// </summary>
        /// <param name="sessionId">会话id</param>
        /// <param name="hangupResHandler">结果回调</param>
        public static void Hangup(string sessionId, HangupResHandler hangupResHandler)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(hangupResHandler);

            RtsNativeMethods.nim_rts_hangup(sessionId, "", HangupResCb, ptr);
        }
示例#33
0
        /// <summary>
        ///     注册下载回调,通过注册回调获得http下载结果通知,刷新资源
        /// </summary>
        /// <param name="handler">下载的结果回调</param>
        ///

        public static void RegDownloadCb(DownloadResultHandler handler)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            NosNativeMethods.nim_nos_reg_download_cb(DownloadCb, ptr);
        }
示例#34
0
        /// <summary>
        /// 最近联系人项全部未读数清零
        /// </summary>
        public static void ResetAllUnreadCount(SessionChangeHandler cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            SessionNativeMethods.nim_session_reset_all_unread_count_async(null, SessionChangeCb, ptr);
        }
示例#35
0
        public static void SetSdkLogCallback(NimWriteLogDelegate cb)
        {
            IntPtr ptr = DelegateConverter.ConvertToIntPtr(cb);

            NIMGlobalNativeMethods.nim_global_reg_sdk_log_cb(null, NimSdkLogCb, ptr);
        }
示例#36
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);
        }