public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventActorCreate.EventName);
     EventManager.ManageSubscriber(mode, this, EventActorComponentFindFromID.EventName);
     EventManager.ManageSubscriber(mode, this, EventActorComponentComputeID.EventName);
     EventManager.ManageSubscriber(mode, this, EventActorLoaded.EventName);
 }
Exemple #2
0
 /// <summary>
 /// Subscribes to a queue asynchronously
 /// </summary>
 /// <param name="queueName"></param>
 /// <param name="mode"></param>
 /// <returns></returns>
 public async Task <bool> SubscribeAsync(string queueName, SubscribeMode mode = SubscribeMode.TemporaryConsumer)
 {
     return(await SendMessageAsync(InitMessage(new SubscriptionMessage()
     {
         QueueName = queueName,
         Mode = mode
     })) != null);
 }
Exemple #3
0
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventWorkspaceSwitch.EventName);
     EventManager.ManageSubscriber(mode, this, EventWorkspaceLoad.EventName);
     EventManager.ManageSubscriber(mode, this, EventWorkspaceSave.EventName);
     EventManager.ManageSubscriber(mode, this, EventWorkspaceNew.EventName);
     EventManager.ManageSubscriber(mode, this, EventWorkspaceClear.EventName);
 }
Exemple #4
0
 /// <summary>
 /// Subscribes to a queue
 /// </summary>
 /// <param name="queueName"></param>
 /// <param name="mode"></param>
 /// <returns></returns>
 public bool Subscribe(string queueName, SubscribeMode mode = SubscribeMode.TemporaryConsumer)
 {
     return(SendMessage(InitMessage(new SubscriptionMessage()
     {
         QueueName = queueName,
         Mode = mode
     })) != null);
 }
 /// <summary>
 /// 订阅消息
 /// </summary>
 /// <param name="bus"></param>
 /// <param name="topic">消息主题</param>
 /// <param name="mode"></param>
 /// <param name="handler">处理器</param>
 /// <returns></returns>
 public static IDisposable Subscribe(this IMessageBus bus, string topic, SubscribeMode mode, Action handler)
 {
     Guard.NotNull(bus, "bus");
     Guard.NotNull(handler, "handler");
     //return bus.Subscribe(topic, null, mode, ObserverHandler.Create(handler));
     return(bus.Subscribe(new SubscribeInfo(handler)
     {
         Topic = topic, Mode = mode
     }));
 }
 /// <summary>
 ///
 /// </summary>
 /// <typeparam name="TData"></typeparam>
 /// <typeparam name="TResult"></typeparam>
 /// <param name="bus"></param>
 /// <param name="mode"></param>
 /// <param name="handler">处理器</param>
 /// <returns></returns>
 public static IDisposable Subscribe <TData, TResult>(this IMessageBus bus, SubscribeMode mode, Func <object, TData, TResult> handler)
 {
     Guard.NotNull(bus, "bus");
     Guard.NotNull(handler, "handler");
     //return bus.Subscribe(null, typeof(TData), mode, ObserverHandler.CreateC<TData, TResult>(handler));
     return(bus.Subscribe(new SubscribeInfo <TData, TResult>(handler)
     {
         Mode = mode
     }));
 }
    /// <summary>
    /// Either adds or removes a listener from the subscribed event
    /// </summary>
    /// <param name="mode"></param>
    /// <param name="listener"></param>
    /// <param name="eventName"></param>
    /// <returns></returns>
    public static bool ManageSubscriber(SubscribeMode mode, IEventListener listener, string eventName)
    {
        if (mode == SubscribeMode.Subscribe)
        {
            AddListener(listener, eventName);
            return(true);
        }

        return(DetachListener(listener, eventName));
    }
 public StaticActionSubscribeProvider(MethodInfo method, string topic, SubscribeMode mode)
 {
     Method = method;
     Factory = (instance) =>
     {
         var handler = Delegate.CreateDelegate(ActionType,  method);
         var messageHandler = ObserverHandler.Create((Action)handler);
         return new SubscribeInfo(null, messageHandler) { Topic = topic, Mode = mode };
     };
 }
        /// <summary>
        /// Either adds or removes a listener from the subscribed event
        /// </summary>
        /// <param name="mode"></param>
        /// <param name="listener"></param>
        /// <param name="eventName"></param>
        /// <returns></returns>
        public static bool ManageSubscriber(SubscribeMode mode, IEventListener listener, string eventName)
        {
            switch (mode)
            {
            case SubscribeMode.Subscribe:
                return(AddListener(listener, eventName));

            case SubscribeMode.Unsubscribe:
            default:
                return(DetachListener(listener, eventName));
            }
        }
Exemple #10
0
  public Action1SubscribeProvider(MethodInfo method, ParameterInfo[] ps, string topic, SubscribeMode mode)
  {
      Method = method;
      var msgType = ps[0].ParameterType;
      var handlerType = Action1Type.MakeGenericType(msgType);
      Factory = instance =>
      {
          var handler = Delegate.CreateDelegate(handlerType, instance, method);
          var messageHandler = (IObserverHandler<IMessage>)Create1HandlerMethod.MakeGenericMethod(msgType).FastFuncInvoke(null, handler);
          return new SubscribeInfo(msgType, messageHandler) { Topic = topic, Mode = mode };
      };
 }
Exemple #11
0
 public StaticActionSubscribeProvider(MethodInfo method, string topic, SubscribeMode mode)
 {
     Method  = method;
     Factory = (instance) =>
     {
         var handler        = Delegate.CreateDelegate(ActionType, method);
         var messageHandler = ObserverHandler.Create((Action)handler);
         return(new SubscribeInfo(null, messageHandler)
         {
             Topic = topic, Mode = mode
         });
     };
 }
Exemple #12
0
        public void Subscribe(Guid id, SubscribeMode mode)
        {
            Subscribers.AddOrUpdate(id, new Subscriber {
                Id = id, Mode = mode
            }, (s, u) => new Subscriber {
                Id = id, Mode = mode
            });

            if (mode == SubscribeMode.PermanentConsumer)
            {
                Persistence.SaveQueue(this);
            }
        }
Exemple #13
0
        public StaticFuncSubscribeProvider(MethodInfo method, string topic, SubscribeMode mode)
        {
            Method = method;
            var handlerType = FuncAType.MakeGenericType(method.ReturnType);

            Factory = instance =>
            {
                var handler        = Delegate.CreateDelegate(handlerType, method);
                var messageHandler = (IObserverHandler <IMessage>)CreateAHandlerMethod.MakeGenericMethod(method.ReturnType).FastFuncInvoke(null, handler);
                return(new SubscribeInfo(null, messageHandler)
                {
                    Topic = topic, Mode = mode
                });
            };
        }
        public void SubscribeStock(string exchange, string symbol, SubscribeMode mode)
        {
            if (SubscribedStocks == null)
            {
                SubscribedStocks = new List <SubscribedStockInfo>();
            }

            if (!SubscribedStocks.Any(s => s.Exchange == exchange && s.Symbol == symbol))
            {
                SubscribedStocks.Add(new SubscribedStockInfo()
                {
                    Exchange = exchange,
                    Symbol   = symbol,
                    Mode     = mode
                });
            }
        }
Exemple #15
0
        public IDisposable Subscribe(SubscribeMode mode, IObserverHandler<IMessage> handler)
        {
            if (handler == null
               || observers.ContainsKey(handler))
                return Disposable.Empty;

            if (mode == SubscribeMode.Async)
                IsAsync = true;

            var observer = handler.Target;

            lock (observers)
            {
                //ListnerManager.OnObserverAdding(observer, Name, Type);
                observers.Add(handler, mode);
                //ListnerManager.OnObserverAdded(observer, Name, Type);
            }

            return Disposable.Create(() => Unsubscribe(handler));
        }
Exemple #16
0
        public IDisposable Subscribe(SubscribeMode mode, IObserverHandler <IMessage> handler)
        {
            if (handler == null ||
                observers.ContainsKey(handler))
            {
                return(Disposable.Empty);
            }

            if (mode == SubscribeMode.Async)
            {
                IsAsync = true;
            }

            var observer = handler.Target;

            lock (observers)
            {
                //ListnerManager.OnObserverAdding(observer, Name, Type);
                observers.Add(handler, mode);
                //ListnerManager.OnObserverAdded(observer, Name, Type);
            }

            return(Disposable.Create(() => Unsubscribe(handler)));
        }
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventActorPrefabFromID.EventName);
 }
Exemple #18
0
 /// <summary>
 /// Adds or removes the listener for the EventObjectAwake event.
 /// </summary>
 /// <param name="mode">Whether its adding or removing the events.</param>
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventObjectAwake.EventName);
 }
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventOnInputRecieved.EventName);
 }
 protected override void ReadMessageInternal(BinaryReader reader)
 {
     base.ReadMessageInternal(reader);
     Mode = (SubscribeMode)reader.ReadInt32();
 }
Exemple #21
0
        public Action1SubscribeProvider(MethodInfo method, ParameterInfo[] ps, string topic, SubscribeMode mode)
        {
            Method = method;
            var msgType     = ps[0].ParameterType;
            var handlerType = Action1Type.MakeGenericType(msgType);

            Factory = instance =>
            {
                var handler        = Delegate.CreateDelegate(handlerType, instance, method);
                var messageHandler = (IObserverHandler <IMessage>)Create1HandlerMethod.MakeGenericMethod(msgType).FastFuncInvoke(null, handler);
                return(new SubscribeInfo(msgType, messageHandler)
                {
                    Topic = topic, Mode = mode
                });
            };
        }
Exemple #22
0
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventRequestPrimaryWeaponFire.EventName);
 }
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventRequestPlayerMove.EventName);
 }
Exemple #24
0
        public StaticFuncSubscribeProvider(MethodInfo method, string topic, SubscribeMode mode)
        {
            Method = method;
            var handlerType = FuncAType.MakeGenericType(method.ReturnType);

            Factory = instance =>
            {
                var handler = Delegate.CreateDelegate(handlerType, method);
                var messageHandler = (IObserverHandler<IMessage>)CreateAHandlerMethod.MakeGenericMethod(method.ReturnType).FastFuncInvoke(null, handler);
                return new SubscribeInfo(null, messageHandler) { Topic = topic, Mode = mode };
            };
        }
 /// <summary>
 ///
 /// </summary>
 /// <typeparam name="TData"></typeparam>
 /// <param name="bus"></param>
 /// <param name="topic">消息主题</param>
 /// <param name="mode"></param>
 /// <param name="handler">处理器</param>
 /// <returns></returns>
 public static IDisposable Subscribe <TData>(this IMessageBus bus, string topic, SubscribeMode mode, Action <object, TData> handler)
 {
     Guard.NotNull(bus, "bus");
     Guard.NotNull(handler, "handler");
     //return bus.Subscribe(topic, typeof(TData), mode, ObserverHandler.Create2<TData>(handler));
     return(bus.Subscribe(new SubscribeInfo <TData>(handler)
     {
         Topic = topic, Mode = mode
     }));
 }
 /// <summary>
 /// Adds or removes the listener for the EventNotification event.
 /// </summary>
 /// <param name="mode">Whether its adding or removing these settings.</param>
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventNotification.EventName);
 }
 /// <summary>
 /// Adds or removes the listener for the EventPersistantSettingChange event.
 /// </summary>
 /// <param name="mode">Whether its adding or removing these settings.</param>
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventPersistantSettingChange.EventName);
 }
Exemple #28
0
 public void Subscribe(SubscribeMode mode)
 {
     EventManager.ManageSubscriber(mode, this, EventOnWorkspaceSwitched.EventName);
 }