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 } }
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 }
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); }