public RegisterData ConnectAsRegister(string nickname, string password) { try { LoginOrRegisterRequest request = new LoginOrRegisterRequest(0, password, ClientVersion); request.IsRegister = true; request.Nickname = nickname; IPAddress[] addr = Dns.GetHostAddresses(ServerAddress); Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sock.Connect(addr, ServerPort); sock.SendOnce(request); RegisterCallback rcb = sock.ReceiveOnce <RegisterCallback>(512); try { sock.Close(); sock.Dispose(); } catch { } if (rcb.Success) { return(new RegisterData(RegisterResult.Success, rcb.Username)); } else { return(new RegisterData((RegisterResult)rcb.Username, -1)); } } catch { return(new RegisterData(RegisterResult.ConnectionError, -1)); } }
/// <summary> /// Crea un handler debil para eventos de tipo <c>EventHandler</c>, /// </summary> /// <param name="eventHandler">Handler origen.</param> /// <param name="register">Delegado para registrar el evento.</param> /// <param name="unregister">Delegado para deregistrar el evento.</param> /// <returns>Handler debil.</returns> public static IWeakEventHandler <EventHandler> WeakListen( this EventHandler eventHandler, RegisterCallback <EventHandler> register, UnregisterCallback <EventHandler> unregister) { return(WeakListen <EventHandler, EventArgs>(eventHandler, register, unregister)); }
public RegisterData ConnectAsRegister <RequestType>(RequestType request) where RequestType : LoginOrRegisterRequest, IStorable, new() { try { request.IsRegister = true; IPAddress[] addr = Dns.GetHostAddresses(ServerAddress); Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sock.Connect(addr, ServerPort); sock.SendOnce(request); RegisterCallback rcb = sock.ReceiveOnce <RegisterCallback>(512); try { sock.Close(); sock.Dispose(); } catch { } if (rcb.Success) { return(new RegisterData(RegisterResult.Success, rcb.Username)); } else { return(new RegisterData((RegisterResult)rcb.Username, -1)); } } catch { return(new RegisterData(RegisterResult.ConnectionError, -1)); } }
/// <summary> /// Gestiona los eventos de una propiedad. /// </summary> public RegisterForImp <TSender> RegisterProperty <TItem>(string propertyName, Func <TSender, TItem> getValue, RegisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > unregister, bool valuesToManager = true) { return(this.RegisterProperty(propertyName, getValue, null, register, unregister, valuesToManager)); }
/// <summary> /// Gestiona los eventos de multiples propiedades. /// </summary> public RegisterForImp <TSender> RegisterProperties(Type[] propertyTypes, string[] propertyNames, Func <TSender, object>[] getValues, RegisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > unregister, bool valuesToManager = true) { return(this.RegisterProperties(propertyTypes, propertyNames, getValues, null, register, unregister, valuesToManager)); }
/// <summary> /// Gestiona los eventos de una lista. /// </summary> public RegisterForImp <TSender> RegisterList <TItem>(Func <TSender, IList <TItem> > getValues, RegisterCallback <TSender, EventHandler_v2 <ListEventArgs> > register, UnregisterCallback <TSender, EventHandler_v2 <ListEventArgs> > unregister, bool valuesToManager = true) { return(this.RegisterList(getValues, null, register, unregister, valuesToManager)); }
public ForSource <TSource> RegisterWeak(string name, EventHandler eventHandler, RegisterCallback <TSource, EventHandler> register, UnregisterCallback <TSource, EventHandler> unregister) { this.manager.RegisterWeak <TSource, EventHandler, EventArgs>(name, eventHandler, register, unregister); return(this); }
public ForSource <TSource> RegisterWeak(string name, EventHandler <PropertyChangedExEventArgs> eventHandler, RegisterCallback <TSource, EventHandler <PropertyChangedExEventArgs> > register, UnregisterCallback <TSource, EventHandler <PropertyChangedExEventArgs> > unregister) { this.manager.RegisterWeak <TSource, EventHandler <PropertyChangedExEventArgs>, PropertyChangedExEventArgs>(name, eventHandler, register, unregister); return(this); }
/// <summary> /// Crea un handler debil para eventos de tipo <c>EventHandler_v2</c>, /// </summary> /// <param name="eventHandler">Handler origen.</param> /// <param name="register">Delegado para registrar el evento.</param> /// <param name="unregister">Delegado para deregistrar el evento.</param> /// <returns>Handler debil.</returns> public static IWeakEventHandler <EventHandler_v2 <T> > WeakListen <T>( this EventHandler_v2 <T> eventHandler, RegisterCallback <EventHandler_v2 <T> > register, UnregisterCallback <EventHandler_v2 <T> > unregister) where T : EventArgs { return(WeakListen <EventHandler_v2 <T>, T>(eventHandler, register, unregister)); }
public EventListener_v2(EventHandler_v2 <TEventArgs> eventHandler, RegisterCallback <EventHandler_v2 <TEventArgs> > register, UnregisterCallback <EventHandler_v2 <TEventArgs> > unregister) { this.register = register; this.unregister = unregister; this.eventHandler = eventHandler; }
public EventListener(EventHandler eventHandler, RegisterCallback <EventHandler> register, UnregisterCallback <EventHandler> unregister) { this.eventHandler = eventHandler; this.register = register; this.unregister = unregister; }
public AllPropertiesListener(EventHandler_v2 <PropertyChangedExEventArgs> eventHandler, RegisterCallback <EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <EventHandler_v2 <PropertyChangedExEventArgs> > unregister, bool valuesToManager) : base(eventHandler, register, unregister) { this.ValuesToManager = valuesToManager; }
public ForSource <TSource> RegisterWeak <TEventArgs>(string name, EventHandler_v2 <TEventArgs> eventHandler, RegisterCallback <TSource, EventHandler_v2 <TEventArgs> > register, UnregisterCallback <TSource, EventHandler_v2 <TEventArgs> > unregister) where TEventArgs : EventArgs { this.manager.RegisterWeak <TSource, EventHandler_v2 <TEventArgs>, TEventArgs>(name, eventHandler, register, unregister); return(this); }
IEnumerator CoStartSDK(RegisterCallback _register) { InitBluetooth(m_supportedDevices); yield return(new WaitUntil(() => null != m_device)); if (null != _register) { _register(m_device); } }
/// <summary> /// Gestiona los eventos genericos. /// </summary> public RegisterForImp <TSender> Register(EventHandler eventHandler, RegisterCallback <TSender, EventHandler> register, UnregisterCallback <TSender, EventHandler> unregister) { ListenerManager.EventListener listener = new ListenerManager.EventListener(eventHandler, (sender, h) => register((TSender)sender, h), (sender, h) => unregister((TSender)sender, h)); this.manager.Add <TSender>(listener); return(this); }
public ListListener(EventHandler_v2 <ListEventArgs> eventHandler, Func <object, IList <TItem> > getValues, RegisterCallback <EventHandler_v2 <ListEventArgs> > register, UnregisterCallback <EventHandler_v2 <ListEventArgs> > unregister, bool valuesToManager) : base(eventHandler, register, unregister) { this.ValuesToManager = valuesToManager; this.getValues = getValues; }
/// <summary> /// Escucha con un handler debil para eventos de tipo <c>TEventHandler</c>, /// </summary> /// <param name="eventHandler">Handler origen.</param> /// <param name="register">Delegado para registrar el evento.</param> /// <param name="unregister">Delegado para deregistrar el evento.</param> /// <returns>Handler debil.</returns> public static IWeakEventHandler <TEventHandler> WeakListen <TEventHandler, TEventArgs>( TEventHandler eventHandler, RegisterCallback <TEventHandler> register, UnregisterCallback <TEventHandler> unregister) where TEventArgs : EventArgs { IWeakEventHandler <TEventHandler> weak = MakeWeak <TEventHandler, TEventArgs>(eventHandler, unregister); register(weak.Handler); return(weak); }
/// <summary> /// Gestiona los eventos genericos. /// </summary> public RegisterForImp <TSender> Register <TEventArgs>(EventHandler_v2 <TEventArgs> eventHandler, RegisterCallback <TSender, EventHandler_v2 <TEventArgs> > register, UnregisterCallback <TSender, EventHandler_v2 <TEventArgs> > unregister) where TEventArgs : EventArgs { ListenerManager.EventListener_v2 <TEventArgs> listener = new ListenerManager.EventListener_v2 <TEventArgs>(eventHandler, (sender, h) => register((TSender)sender, h), (sender, h) => unregister((TSender)sender, h)); this.manager.Add <TSender>(listener); return(this); }
/// <summary> /// 跳转页面 /// </summary> /// <param name="key">跳转页面的Key</param> /// <param name="value">跳转传的参数</param> public static void Navigat(object key, object value = null) { if (views.ContainsKey(key)) { object view = views[key]; //页面分为 Uri 或者 类型 或者 对象 if (view is Uri) { RegisterCallback?.Invoke(null, view); } } }
public void StartSDK(RegisterCallback _register) { if (null == m_device) { DontDestroyOnLoad(gameObject); StartCoroutine(CoStartSDK(_register)); } else { // 多次调用,则只是重新注册回调函数 _register(m_device); } }
/// <summary> /// Gestiona los eventos de multiples propiedades. /// </summary> public RegisterForImp <TSender> RegisterAllProperties(EventHandler_v2 <PropertyChangedExEventArgs> eventHandler, RegisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > unregister, bool valuesToManager = false) { ListenerManager.AllPropertiesListener listener = new ListenerManager.AllPropertiesListener(eventHandler, (sender, h) => register((TSender)sender, h), (sender, h) => unregister((TSender)sender, h), valuesToManager); this.manager.Add <TSender>(listener); return(this); }
/// <summary> /// Gestiona los eventos de una coleccion. /// </summary> public RegisterForImp <TSender> RegisterCollection <TItem>(Func <TSender, ICollection <TItem> > getValues, EventHandler_v2 <CollectionEventArgs> eventHandler, RegisterCallback <TSender, EventHandler_v2 <CollectionEventArgs> > register, UnregisterCallback <TSender, EventHandler_v2 <CollectionEventArgs> > unregister, bool valuesToManager = true) { ListenerManager.CollectionListener <TItem> listener = new ListenerManager.CollectionListener <TItem>(eventHandler, sender => getValues((TSender)sender), (sender, h) => register((TSender)sender, h), (sender, h) => unregister((TSender)sender, h), valuesToManager); this.manager.Add <TSender>(listener); return(this); }
public PropertyListener(Type propertyType, EventHandler_v2 <PropertyChangedExEventArgs> eventHandler, string propertyName, Func <object, object> getValue, RegisterCallback <EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <EventHandler_v2 <PropertyChangedExEventArgs> > unregister, bool valuesToManager) : base(eventHandler, register, unregister) { this.PropertyType = propertyType; this.ValuesToManager = valuesToManager; this.PropertyName = propertyName; this.GetValue = getValue; }
public PropertiesListener(EventHandler_v2 <PropertyChangedExEventArgs> eventHandler, Type[] propertyTypes, string[] propertyNames, Func <object, object>[] getValues, RegisterCallback <EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <EventHandler_v2 <PropertyChangedExEventArgs> > unregister, bool valuesToManager) : base(eventHandler, register, unregister) { this.ValuesToManager = valuesToManager; this.propertyTypes = propertyTypes; this.propertyNames = new Dictionary <string, int>(); for (int i = 0; i < propertyNames.Length; i++) { this.propertyNames.Add(propertyNames[i], i); } this.getValues = getValues; }
/// <summary> /// Gestiona los eventos de multiples propiedades. /// </summary> public RegisterForImp <TSender> RegisterProperties(Type[] propertyTypes, string[] propertyNames, Func <TSender, object>[] getValues, EventHandler_v2 <PropertyChangedExEventArgs> eventHandler, RegisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > unregister, bool valuesToManager = true) { ListenerManager.PropertiesListener listener = new ListenerManager.PropertiesListener(eventHandler, propertyTypes, propertyNames, getValues.Select(getValue => (Func <object, object>)(sender => getValue((TSender)sender))).ToArray(), (sender, h) => register((TSender)sender, h), (sender, h) => unregister((TSender)sender, h), valuesToManager); this.manager.Add <TSender>(listener); return(this); }
/// <summary> /// Gestiona los eventos de una propiedad. /// </summary> public RegisterForImp <TSender> RegisterProperty <TItem>(string propertyName, Func <TSender, TItem> getValue, EventHandler_v2 <PropertyChangedExEventArgs> eventHandler, RegisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <TSender, EventHandler_v2 <PropertyChangedExEventArgs> > unregister, bool valuesToManager = true) { ListenerManager.PropertyListener <TItem> listener = new ListenerManager.PropertyListener <TItem>(eventHandler, propertyName, sender => getValue((TSender)sender), (sender, h) => register((TSender)sender, h), (sender, h) => unregister((TSender)sender, h), valuesToManager); foreach (ListenerManager.Listener aux in this.manager.FindListenersOfExactType(typeof(TSender))) { if (aux is ListenerManager.PropertyListener) { ListenerManager.PropertyListener aux2 = (ListenerManager.PropertyListener)aux; if (aux2.Compatible(listener)) { ListenerManager.PropertiesListener newListener = ListenerManager.PropertiesListener.Join(aux2, listener); this.manager.Remove <TSender>(aux2); this.manager.Add <TSender>(newListener); return(this); } } else if (aux is ListenerManager.PropertiesListener) { ListenerManager.PropertiesListener aux2 = (ListenerManager.PropertiesListener)aux; if (aux2.Compatible(listener)) { ListenerManager.PropertiesListener newListener = ListenerManager.PropertiesListener.Join(aux2, listener); this.manager.Remove <TSender>(aux2); this.manager.Add <TSender>(newListener); return(this); } } } this.manager.Add <TSender>(listener); return(this); }
public SourceManager(TEventHandler eventHandler, RegisterCallback <TSource, TEventHandler> register, UnregisterCallback <TSource, TEventHandler> unregister) { Delegate delEventHandler = (Delegate)(object)eventHandler; this.staticHandler = (delEventHandler.Target == null); if (!this.staticHandler) { this.targetRef = new WeakReference <T>((T)delEventHandler.Target); this.openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, delEventHandler.Method); } else { this.targetRef = null; this.closedHandler = (ClosedEventHandler)Delegate.CreateDelegate(typeof(ClosedEventHandler), null, delEventHandler.Method); } this.handler = (TEventHandler)(object)Delegate.CreateDelegate(typeof(TEventHandler), this, invokeMth); this.register = register; this.unregister = unregister; }
public extern static void get_cmd_register(RegisterCallback cb);
public WeakEventHandlerManager RegisterWeak <TSource, TEventHandler, TEventArgs>(string name, TEventHandler eventHandler, RegisterCallback <TSource, TEventHandler> register, UnregisterCallback <TSource, TEventHandler> unregister) where TEventArgs : EventArgs { Delegate delEventHandler = eventHandler as Delegate; Contract.Requires(delEventHandler != null); //// Only instance methods are supported. //Contract.Requires(!delEventHandler.Method.IsStatic && (delEventHandler.Target != null)); if (delEventHandler.Method.IsStatic || (delEventHandler.Target == null)) { } Contract.Assert(!this.mapDelegates.ContainsKey(name)); Type sourceManagerType = typeof(SourceManager <, , ,>).MakeGenericType( delEventHandler.Method.DeclaringType, typeof(TSource), typeof(TEventHandler), typeof(TEventArgs)); ConstructorInfo sourceManagerConstructor = sourceManagerType.GetConstructor(new[] { typeof(TEventHandler), typeof(RegisterCallback <TSource, TEventHandler>), typeof(UnregisterCallback <TSource, TEventHandler>) }); Contract.Assert(sourceManagerConstructor != null); ISourceManager sourceManager = (ISourceManager)sourceManagerConstructor.Invoke(new object[] { eventHandler, register, unregister }); this.mapDelegates.Add(name, sourceManager); return(this); }
public MultiPropertyListener(RegisterCallback <EventHandler_v2 <PropertyChangedExEventArgs> > register, UnregisterCallback <EventHandler_v2 <PropertyChangedExEventArgs> > unregister) { this.register = register; this.unregister = unregister; }