예제 #1
0
파일: EventMgr.cs 프로젝트: lingfan/lxl_cpp
        public void Remove(EventId <EventKeyType> eventId)
        {
            EventCallbackMgr <EventKeyType> cbMgr = null;

            if (m_eventCbMgrs.TryGetValue(eventId.key, out cbMgr))
            {
                cbMgr.RemoveCallback(eventId.idx);
            }
        }
예제 #2
0
파일: EventMgr.cs 프로젝트: lingfan/lxl_cpp
        public void Fire(EventKeyType eventKey, object param)
        {
            EventCallbackMgr <EventKeyType> cbMgr = null;

            if (m_eventCbMgrs.TryGetValue(eventKey, out cbMgr))
            {
                cbMgr.FireCallbacks(param);
            }
        }
예제 #3
0
파일: EventMgr.cs 프로젝트: lingfan/lxl_cpp
        protected EventId <EventKeyType> DoSubscribe(EventKeyType eventKey, EventCallback <EventKeyType> ecb)
        {
            EventCallbackMgr <EventKeyType> cbMgr = null;

            if (!m_eventCbMgrs.TryGetValue(eventKey, out cbMgr))
            {
                cbMgr = new EventCallbackMgr <EventKeyType>(eventKey);
                m_eventCbMgrs.Add(eventKey, cbMgr);
            }
            ulong eid = cbMgr.AddCallback(ecb);
            EventId <EventKeyType> ret = new EventId <EventKeyType>();

            ret.key = eventKey;
            ret.idx = eid;
            ret.mgr = new WeakReference(this);
            return(ret);
        }