예제 #1
0
        public void reg_client_logic(string uuid, logicproxy _logicproxy)
        {
            var _clientproxy = get_clientproxy(uuid);

            if (_clientproxy != null)
            {
                clientproxy_logicproxy.Add(_clientproxy, _logicproxy);
            }
        }
예제 #2
0
        public logicproxy reg_logic(String uuid, juggle.Ichannel ch)
        {
            var _logicproxy = new logicproxy(ch);

            logicproxys.Add(ch, _logicproxy);
            logicproxys_uuid.Add(uuid, _logicproxy);

            return(_logicproxy);
        }
예제 #3
0
        public void forward_client_call_logic(string logic_uuid, string module, string func, ArrayList argv)
        {
            logicproxy _logicproxy = _logicmanager.get_logic(logic_uuid);

            if (_logicproxy != null)
            {
                string uuid = _clientmanager.get_client_uuid(_clientmanager.get_clientproxy(juggle.Imodule.current_ch));
                _logicproxy.client_call_logic(uuid, module, func, argv);
            }
        }
예제 #4
0
        public void disconnect_logic(string client_uuid, string logic_uuid)
        {
            logicproxy _logicproxy = _logicmanager.get_logic(logic_uuid);

            if (_logicproxy != null)
            {
                _logicproxy.client_disconnect(client_uuid);
                _clientmanager.unreg_client_logic(juggle.Imodule.current_ch);
            }
        }
예제 #5
0
        public void connect_logic(string client_uuid, string logic_uuid)
        {
            logicproxy _logicproxy = _logicmanager.get_logic(logic_uuid);

            if (_logicproxy != null)
            {
                _clientmanager.reg_client_logic(client_uuid, _logicproxy);
                _logicproxy.client_connect(client_uuid);
            }
        }
예제 #6
0
        public void get_logic()
        {
            logicproxy _logicproxy = _logicmanager.get_logic();

            if (_logicproxy != null)
            {
                string uuid = _clientmanager.get_client_uuid(_clientmanager.get_clientproxy(juggle.Imodule.current_ch));
                _logicproxy.get_logic(uuid);
            }
        }
예제 #7
0
        public void cancle_server()
        {
            logicproxy _logicproxy = _clientmanager.get_clientproxy_logicproxy(juggle.Imodule.current_ch);

            if (_logicproxy != null)
            {
                string uuid = _clientmanager.get_client_uuid(
                    _clientmanager.get_clientproxy(juggle.Imodule.current_ch));

                _logicproxy.client_disconnect(uuid);
            }
        }
예제 #8
0
        public void connect_server(string uuid, long tick)
        {
            logicproxy _logicproxy = _logicmanager.get_logic();

            if (!_clientmanager.has_client(uuid))
            {
                System.Console.WriteLine("client " + uuid + " connected");

                _clientmanager.reg_client(uuid, juggle.Imodule.current_ch, _timerservice.Tick, tick);

                _logicproxy.client_connect(uuid);
            }
        }
예제 #9
0
        public void connect_sucess(string client_uuid)
        {
            clientproxy _clientproxy = _clientmanager.get_clientproxy(client_uuid);

            if (_clientproxy != null)
            {
                logicproxy _logicproxy = _logicmanager.get_logic(juggle.Imodule.current_ch);
                if (_logicproxy != null)
                {
                    _clientproxy.connect_logic_sucess(_logicproxy.uuid);
                }
            }
        }
예제 #10
0
        public void ack_client_connect_server(string uuid, string result)
        {
            clientproxy _clientproxy = _clientmanager.get_clientproxy(uuid);

            if (_clientproxy != null)
            {
                if (result != "svr_is_busy")
                {
                    _clientmanager.reg_client_logic(uuid, _logicmanager.get_logic(juggle.Imodule.current_ch));
                    _clientproxy.ack_connect_server(result);
                }
                else
                {
                    logicproxy _logicproxy = _logicmanager.get_logic();
                    _logicproxy.client_connect(uuid);
                }
            }
        }
예제 #11
0
        public logicproxy get_logic()
        {
            Random rand = new Random();
            int    r    = rand.Next(0, logicproxys.Values.Count);

            logicproxy _logicproxy = null;

            foreach (var _c in logicproxys.Values)
            {
                if (r == 0)
                {
                    _logicproxy = _c;
                }

                r--;
            }

            return(_logicproxy);
        }
예제 #12
0
        public void ack_client_get_logic(string client_uuid, string result)
        {
            clientproxy _clientproxy = _clientmanager.get_clientproxy(client_uuid);

            if (_clientproxy != null)
            {
                logicproxy _logicproxy = _logicmanager.get_logic(juggle.Imodule.current_ch);
                if (result == "svr_is_success")
                {
                    _clientproxy.ack_get_logic(_logicproxy.uuid);
                }
                else
                {
                    Console.WriteLine(result + " svr:" + _logicproxy.uuid);

                    _logicproxy = _logicmanager.get_logic();
                    _logicproxy.get_logic(client_uuid);
                }
            }
        }
예제 #13
0
        public void ack_client_get_logic(string client_uuid, string result)
        {
            clientproxy _clientproxy = _clientmanager.get_clientproxy(client_uuid);

            if (_clientproxy != null)
            {
                logicproxy _logicproxy = _logicmanager.get_logic(juggle.Imodule.current_ch);
                if (String.Equals(result, "svr_is_sucess"))
                {
                    _clientproxy.ack_get_logic(_logicproxy.uuid);
                }
                else
                {
                    log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "{0} svr:{1}", result, _logicproxy.uuid);

                    _logicproxy = _logicmanager.get_logic();
                    _logicproxy.get_logic(client_uuid);
                }
            }
        }
예제 #14
0
        public void reg_logic(string uuid)
        {
            logicproxy _logproxy = _logicmanager.reg_logic(uuid, juggle.Imodule.current_ch);

            _logproxy.reg_logic_sucess();
        }