private void AddListener(uint cmd, Type TRsp, Delegate onRsp, uint index, float timeout, Action <int> onErr)
        {
            ListenerHelper helper = new ListenerHelper()
            {
                cmd       = cmd,
                index     = index,
                TMsg      = TRsp,
                onErr     = onErr,
                onMsg     = onRsp,
                timeout   = timeout,
                timestamp = SGFTime.GetTimeSinceStartup()
            };

            m_listRspListener.Add(index, helper);
        }
        public void AddListener <TMsg>(uint cmd, Action <ISession, uint, TMsg> onMsg)
        {
            ListenerHelper helper = new ListenerHelper()
            {
                typeMsg   = typeof(TMsg),
                handleMsg = onMsg
            };

            helper.handleMsg = onMsg;
            if (listenerHelpers.ContainsKey(cmd))
            {
                listenerHelpers.Remove(cmd);
            }
            listenerHelpers.Add(cmd, helper);
        }
Example #3
0
        public override void Dump()
        {
            m_gateway.Dump();

            StringBuilder sb = new StringBuilder();

            foreach (var pair in m_listMsgListener)
            {
                ListenerHelper helper = pair.Value;
                sb.AppendFormat("\t<cmd:{0}, msg:{1}, \tlistener:{2}.{3}>\n", pair.Key, helper.TMsg.Name,
                                helper.onMsg.Method.DeclaringType.Name, helper.onMsg.Method.Name);
            }

            Debuger.LogWarning("\nNet Listeners ({0}):\n{1}", m_listMsgListener.Count, sb);

            base.Dump();
        }
        public void Dump()
        {
            gateWay.Dump();
            StringBuilder sb = new StringBuilder();

            foreach (var pair in listenerHelpers)
            {
                ListenerHelper helper = pair.Value;
                if (helper.handleMsg.Method.DeclaringType != null)
                {
                    sb.AppendFormat("\t<cmd:{0}, msg:{1}, \tlistener:{2}.{3}>\n", pair.Key, helper.typeMsg.Name,
                                    helper.handleMsg.Method.DeclaringType.Name, helper.handleMsg.Method.Name);
                }
            }
            Debuger.LogWarning("\nNet Listeners ({0}):\n{1}", listenerHelpers.Count, sb);
            rpcManager.Dump();
        }
Example #5
0
        private void RegisterMessageListeners()
        {
            LoggingHelper.RegisterMessaging(PosApplication, this, fileTraceSwitch.Level, dbTraceSwitch.Level);

            MessagingService.RegisterListener <ApplicationShutdownMessage>(this, (message) =>
            {
                try
                {
                    MessagingService.SendLogMessage("Pos application closed.", CloudRetailerTraceLevel.Info);
                    this.Shutdown(message.ExitCode);
                }
                catch (Exception)
                {
                }

                try
                {
                    Environment.Exit(message.ExitCode);
                }
                catch (Exception)
                {
                }
            });

            this.MessagingService.RegisterListener <NotificationMessage>(this, (message) =>
            {
                Ensure.NotNull(message, () => message);
                var listener = new ListenerHelper(MessagingService, ViewModelService);
                listener.RegisterNotification(message);
            });

            this.MessagingService.RegisterListener <UserInputMessage>(this, (message) =>
            {
                Ensure.NotNull(message, () => message);
                var listener = new ListenerHelper(MessagingService, ViewModelService);
                listener.RegisterUserInput(message);
            });
        }