Exemple #1
0
 public Message HandleEvent(CoreEvent eventMsg)
 {
     if (eventMsg.IsLastWindowClosed)
     {
         Close();
     }
     return(null);
 }
    //
    void ConstructManagers()
    {
        _coreData =  new CoreData();

        _coreSound = new CoreSound();

        _coreEvent =  new CoreEvent();

        _coreScene = new CoreScene();
    }
    public static object BroadcastEvent(string eventName, object sender, object args)
    {
        object retValue = null;
        //try to fetch event
        CoreEvent existing = null;

        if (_eventBag.TryGetValue(eventName, out existing))
        {
            retValue = existing(sender, args); //broadcast to all subscribers on that event
        }
        return(retValue);
    }
    public static void UnsubscribeEvent(string eventName, CoreEvent eventObj)
    {
        //try to fetch event
        CoreEvent existing = null;

        if (_eventBag.TryGetValue(eventName, out existing))
        {
            existing -= eventObj; //delegate unsubscribe
        }
        if (existing == null)
        {
            _eventBag.Remove(eventName); //remove empty events
        }
    }
Exemple #5
0
        private void BroadcastNetworkInformation(CoreEvent obj)
        {
            // Publish the network node id of this node, so other modules (especially Master) can have it
            _messageBus.Publish(BackplaneEvent.ChannelNetworkIdChanged, new BackplaneEvent {
                Data = _nodeNetworkId.ToString()
            });

            // Publish the list of zones that this node belongs to so other modules (Master) know.
            var zones = string.Join(",", _configuration.Zones.OrEmptyIfNull());

            _messageBus.Publish(BackplaneEvent.ChannelSetZones, new BackplaneEvent
            {
                Data = zones
            });
        }
    public static void SubscribeEvent(string eventName, CoreEvent eventObj)
    {
        //check if event is existing, if so subscribe to it
        CoreEvent existing = null;

        if (_eventBag.TryGetValue(eventName, out existing))
        {
            existing += eventObj; //delegate subscribe
        }
        else
        {
            existing = eventObj;
        }

        _eventBag[eventName] = existing;//store it in the bag
    }
Exemple #7
0
        public void RouteCoreEvent(CoreEvent coreEvent)
        {
            var handlers = _coreEventsHandlers[coreEvent.Name];

            if (handlers == null)
            {
                Log.Warning($"Drop core event {coreEvent.Name} because server hasn't proper handlers");
                return;
            }
            foreach (var h in handlers)
            {
                Task.Run(() =>
                {
                    h.HandleEvent(coreEvent);
                });
            }
        }
 public void FireEvent(CoreEvent coreEvent)
 {
     _router.RouteCoreEvent(coreEvent);
 }