Ejemplo n.º 1
0
 internal SubscriberInfo(IMessageSubscriber Subscriber)
 {
     SubscriberType = Subscriber.GetType();
     Instance       = Subscriber;
     Roles          = new RoleSet(SubscriberType);
     _ObservedSet   = new UniqueSet <IMessageSubscriber>();
 }
Ejemplo n.º 2
0
        public void Deliver()
        {
            UniqueSet <MessageDelivery> tmp = _PendingDelivery;

            _ActiveDelivery.Clear();
            _PendingDelivery = _ActiveDelivery;
            tmp.EachDo((MessageDelivery msgDel) =>
            {
                msgDel.Handler.CallHandler(msgDel.Msg);
            });
            _ActiveDelivery = tmp;
        }
Ejemplo n.º 3
0
        private UniqueSet <MessageDelivery> _PendingDelivery, _ActiveDelivery; // for swapping an acti

        public MessageBus()
        {
            lock (typeof(MessageBus)) {
                if (!__Initialised)
                {
                    RoleSet.Init();
                    __Initialised = true;
                }
            }
            _MessageHandlers = new Groups <SubscriberInfo, HandlerInfo>();
            _PendingDelivery = new UniqueSet <MessageDelivery>();
            _ActiveDelivery  = new UniqueSet <MessageDelivery>();
            _Logger          = new Logger();
        }