コード例 #1
0
        public SubscribedEvent SubscribeToEvent(LightingLoad theLoad, Type eventType)
        {
            var map = MessageHub.Instance;

            SubscribedEvent sEvent = new SubscribedEvent();

            if (eventType == typeof(LoadLevelEvent))
            {
                Action <LoadLevelEvent> loadEvent = null;
                loadEvent = new Action <LoadLevelEvent>(x => this.ProcessLoadLevelEvent(x));
                var loadID = theLoad.LoadID;
                var token  = map.Subscribe(loadEvent, x => x.Load.LoadID == loadID);

                sEvent.token     = token;
                sEvent.eventType = typeof(LoadLevelEvent);
            }
            else
            {
                throw new Exception("Event Type not found");
            }

            List <SubscribedEvent> list;

            if (!mydict.TryGetValue(theLoad, out list))
            {
                list = new List <SubscribedEvent>();
                mydict.Add(theLoad, list);
            }

            list.Add(sEvent);

            return(sEvent);
        }
コード例 #2
0
        public void RemoveLoad(LightingLoad load)
        {
            _loads.Remove(load);

            /*
             * var hub = MessageHub.Instance;
             */
            //TODO: Unsubscribe
        }
コード例 #3
0
        public void AddLoad(LightingLoad load)
        {
            _loads.Add(load);

            /*
             * var hub = MessageHub.Instance;
             * Action<LoadEvent> loadEvent = new Action<LoadEvent>(x => this.ProcessLoadEvent(x));
             *
             * //This is a reference to my event
             * //Probably need to keep a local copy of all events I'm subscribed to
             * var token = hub.Subscribe(loadEvent);
             */
        }
コード例 #4
0
 public void LoadChanged(LightingLoad load, EventArgs args)
 {
     //_EIScom.BooleanInput[isOn].BoolValue = true;
 }
コード例 #5
0
 public void SubscribeToLoadEvents(LightingLoad _load)
 {
     SubscribeToEvent(_load, typeof(LoadLevelEvent));
 }