Exemplo n.º 1
0
        M对象 创建对象(IT服务端 __IT服务端, B链路监控 __Ping, string __对象名称 = "链路监控", string __分类 = "")
        {
            var __对象 = new M对象(__对象名称, __分类);

            __对象.添加属性("配置", () => HJSON.序列化(__Ping.配置), E角色.客户, null);

            __对象.添加方法("查询状态", __实参列表 =>
            {
                return(HJSON.序列化(__Ping.查询状态()));
            }, E角色.客户, null, null);

            __对象.添加方法("修改配置", __实参列表 =>
            {
                var __配置 = HJSON.反序列化 <M链路监控配置>(__实参列表["配置"]);
                __Ping.修改配置(__配置);
                File.WriteAllText(H路径.获取绝对路径("链路监控配置.txt"), HJSON.序列化(__Ping.配置), Encoding.UTF8);
                return("");
            }, E角色.客户, new List <M形参>
            {
                new M形参("配置", new M元数据 {
                    结构 = E数据结构.对象, 子成员列表 = new List <M子成员> {
                        new M子成员("超时", new M元数据 {
                            类型 = "int", 描述 = "毫秒", 默认值 = "1000"
                        }),
                        new M子成员("频率", new M元数据 {
                            类型 = "int", 描述 = "毫秒/次", 默认值 = "1000"
                        }),
                        new M子成员("阈值", new M元数据 {
                            类型 = "int", 描述 = "1-10, 通过10次中成功的次数表示当前通断", 默认值 = "7"
                        }),
                        new M子成员("IP列表", new M元数据 {
                            类型 = "string", 描述 = "ip或域名", 结构 = E数据结构.单值数组
                        }),
                    }
                }),
            }, null);

            __对象.添加事件("连接变化", E角色.客户, new List <M形参> {
                new M形参("地址", "string"), new M形参("旧", "bool"), new M形参("新", "bool")
            });
            __Ping.连接变化 += (__地址, __旧, __新) =>
            {
                H业务日志.记录("链路", string.Format("{0} {1}", __地址, __新 == true ? "通" : "断"));
                __IT服务端.触发事件(__对象名称, "连接变化", new Dictionary <string, string> {
                    { "地址", __地址 }, { "旧", __旧.ToString() }, { "新", __新.ToString() }
                });
            };
            return(__对象);
        }
Exemplo n.º 2
0
        public void 配置()
        {
            INET.H日志输出.设置(q => Console.WriteLine(string.Format("{0}\t{1}\t{2}\n{3}\t{4}({5})\n{6}", q.等级, q.概要, q.详细, q.文件, q.方法, q.行号, q.异常)));
            _IT服务端 = FT通用访问工厂.创建服务端();

            var __命令行   = new B命令行();
            var __命令行对象 = 创建对象(_IT服务端, __命令行);

            _IT服务端.添加对象("命令行", () => __命令行对象);

            var __进程管理   = new B进程管理();
            var __进程管理对象 = 创建对象(_IT服务端, __进程管理);

            _IT服务端.添加对象("进程管理", () => __进程管理对象);

            var __FTP   = new BFTP();
            var __FTP对象 = 创建对象(_IT服务端, __FTP);

            _IT服务端.添加对象("FTP", () => __FTP对象);

            var __链路监控配置 = HJSON.反序列化 <M链路监控配置>(File.ReadAllText(H路径.获取绝对路径("链路监控配置.txt"), Encoding.UTF8));
            var __链路监控   = new B链路监控(__链路监控配置);
            var __链路监控对象 = 创建对象(_IT服务端, __链路监控);

            _IT服务端.添加对象("链路监控", () => __链路监控对象);

            var __进程监控配置 = HJSON.反序列化 <M进程监控配置>(File.ReadAllText(H路径.获取绝对路径("进程监控配置.txt"), Encoding.UTF8));
            var __进程监控   = new B进程监控(__进程监控配置);
            var __进程监控对象 = 创建对象(_IT服务端, __进程监控);

            _IT服务端.添加对象("进程监控", () => __进程监控对象);

            var __资源监控配置 = HJSON.反序列化 <M资源监控配置>(File.ReadAllText(H路径.获取绝对路径("资源监控配置.txt"), Encoding.UTF8));
            var __资源监控   = new B资源监控(__资源监控配置);
            var __资源监控对象 = 创建对象(_IT服务端, __资源监控);

            _IT服务端.添加对象("资源监控", () => __资源监控对象);

            var __业务日志对象 = 创建对象(_IT服务端);

            _IT服务端.添加对象("业务日志", () => __业务日志对象);
        }