Ejemplo n.º 1
0
        public Data HandleRequest(Data req)
        {
            if (_Handler == null)
            {
                return(null);
            }

            if (!WeakListHelper.IsValid(_RequestCheckers, (IRequestChecker checker) => {
                return(checker.IsValidRequest(this, req));
            }))
            {
                return(null);
            }

            WeakListHelper.Notify(_RequestWatchers, (IRequestWatcher listener) => {
                listener.OnRequest(this, req);
            });

            Data res = _Handler.DoHandle(this, req);

            AdvanceRevision();

            WeakListHelper.Notify(_ResponseWatchers, (IResponseWatcher listener) => {
                listener.OnResponse(this, req, res);
            });
            return(res);
        }
Ejemplo n.º 2
0
        public bool FireEvent(Data evt)
        {
            if (!WeakListHelper.IsValid(_EventCheckers, (IEventChecker checker) => {
                return(checker.IsValidEvent(this, evt));
            }))
            {
                return(false);
            }
            AdvanceRevision();

            WeakListHelper.Notify(_EventWatchers, (IEventWatcher listener) => {
                listener.OnEvent(this, evt);
            });
            return(true);
        }