Пример #1
0
            static private void OnEvent_callback(IntPtr instance, IntPtr e)
            {
                DistClient client = ReferenceDictionary <DistClient> .GetObject(instance);

                if (client != null)
                {
                    DistEvent @event = Reference.CreateObject(e) as DistEvent;

                    if (@event != null)
                    {
                        if (client.UseAutoProperty && @event.GetType().IsDefined(typeof(DistPropertyAutoRestore), true))
                        {
                            @event.RestorePropertiesAndFields();
                        }

                        try
                        {
                            client.OnEvent?.Invoke(client, @event);
                        }
                        catch (Exception ex)
                        {
                            Message.SendException("DistClient", ex);
                        }
                    }
                }
            }
Пример #2
0
            public bool SendEvent(DistEvent e, DistSession session)
            {
                if (UseAutoProperty && e.GetType().IsDefined(typeof(DistPropertyAutoStore), true))
                {
                    e.StorePropertiesAndFields();
                }

                return(DistClient_sendEvent(GetNativeReference(), e.GetNativeReference(), session.GetNativeReference()));
            }
Пример #3
0
            private void OnEvent_callback(IntPtr e)
            {
                DistEvent @event = Reference.CreateObject(e) as DistEvent;

                if (@event != null)
                {
                    if (UseAutoProperty && @event.GetType().IsDefined(typeof(DistPropertyAutoRestore), true))
                    {
                        @event.RestorePropertiesAndFields();
                    }

                    OnEvent?.Invoke(this, @event);
                }
            }
Пример #4
0
            public DistEvent AwaitResponse(DistEvent responseEventType, UInt32 timeout = 100)
            {
                DistEvent response = Reference.CreateObject(DistClient_awaitResponse(GetNativeReference(), responseEventType.GetNativeReference(), timeout)) as DistEvent;

                if (response?.IsValid() ?? false)
                {
                    if (UseAutoProperty && response.GetType().IsDefined(typeof(DistPropertyAutoRestore), true))
                    {
                        response.RestorePropertiesAndFields();
                    }
                }

                return(response);
            }