示例#1
0
        private Net2Service service(string name, DelegateGetResponse response_callback)
        {
            Net2Service service = new Net2Service(name, response_callback);

            service.delegateDisposing += DisposingChannel;
            service.delegateGetTime   += getTime;
            service.delegateCrashed   += ChannelCrashed;
            service.delegateNewLog    += delegateNewLog;

            return(service);
        }
示例#2
0
        public static void Init(Net2Config net2_config, DelegateGetResponse response_callback = null)
        {
            if (net2_config == null || string.IsNullOrEmpty(net2_config.name_space) ||
                string.IsNullOrEmpty(net2_config.consul_network_address) ||
                string.IsNullOrEmpty(net2_config.consul_network_mask) ||
                net2_config.consul_network_port == 0 ||
                string.IsNullOrEmpty(net2_config.ntp_server_host_name) ||
                net2_config.ntp_server_port == 0)
            {
                throw new ArgumentException();
            }

            Instance.Initialize(net2_config, response_callback);
        }
示例#3
0
        private void Initialize(Net2Config net2_config, DelegateGetResponse response_callback)
        {
            lock (padlock)
            {
                if (state == Net2State.STOPPED)
                {
                    channels_list = new Dictionary <ulong, Net2HandlerBase>();

                    if (response_callback == null)
                    {
                        GetResponse = ResponseCallback;
                    }
                    else
                    {
                        GetResponse = response_callback;
                    }

                    this.net2_config      = net2_config;
                    local_network_address = net2_config.local_network_address;

                    Net2NTPClient.delegateNewLogx += delegateNewLog;
                    net2_ntp = new Net2NTPClient(net2_config.ntp_server_host_name, true);


                    delegateNewLog("test", LogType.INFO, "test");

                    net2_consul = new Net2Consul("http://" + net2_config.consul_network_address + ":" + net2_config.consul_network_port, net2_config.consul_mode);

                    main_timer          = new System.Timers.Timer();
                    main_timer.Interval = 1000;
                    main_timer.Elapsed += Main_timer_Elapsed;
                    main_timer.Enabled  = true;
                    main_timer.Start();

                    state = Net2State.STARTED;
                }
                else
                {
                    throw new Exception("Already inited");
                }
            }
        }
示例#4
0
        private Net2HandlerService CreateService(string name, DelegateGetResponse response_callback)
        {
            if (state == Net2State.STARTED)
            {
                string new_name = NameSpace + "-" + name;
                if (IsTopicExist(new_name))
                {
                    throw new ArgumentException("Duplicate topic name", "name");
                }
                Net2HandlerService service_handler = new Net2HandlerService();
                (service_handler as INet2Handler).SetInstance(service(new_name, response_callback));

                addChannel(service_handler);
                return(service_handler);
            }
            else
            {
                throw new Exception("Init frist");
            }
        }
示例#5
0
 public static Net2HandlerService Service(string name, DelegateGetResponse response_callback)
 {
     return(Instance.CreateService(name, response_callback));
 }
示例#6
0
 public Net2Service(string service_name, DelegateGetResponse response_callback) : base()
 {
     GetResponse = response_callback;
     this.name   = service_name;
 }