From 46c602586efdebaea167b462a19333a58868cbc6 Mon Sep 17 00:00:00 2001 From: shaoying Date: Mon, 25 Dec 2017 09:45:28 +0800 Subject: [PATCH] =?UTF-8?q?mod=20ctx&msg=20=E7=A7=81=E6=9C=89=E5=8C=96?= =?UTF-8?q?=E4=BA=86=E6=9F=90=E4=BA=9B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/context/mdb/mdb.go | 10 +++++----- src/context/nfs/nfs.go | 10 +++++----- src/context/tcp/tcp.go | 12 ++++++------ src/context/web/web.go | 26 +++++++++++++------------- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/context/mdb/mdb.go b/src/context/mdb/mdb.go index bf88811c..ec9c8db4 100644 --- a/src/context/mdb/mdb.go +++ b/src/context/mdb/mdb.go @@ -56,13 +56,13 @@ func (mdb *MDB) Start(m *ctx.Message, arg ...string) bool { func (mdb *MDB) Close(m *ctx.Message, arg ...string) bool { switch mdb.Context { - case m.Target: + case m.Target(): if mdb.DB != nil { m.Log("info", nil, "%d close %s %s", Pulse.Capi("nsource", -1)+1, m.Cap("driver"), m.Cap("source")) mdb.DB.Close() mdb.DB = nil } - case m.Source: + case m.Source(): } return true } @@ -80,12 +80,12 @@ var Index = &ctx.Context{Name: "mdb", Help: "数据中心", m.Assert(len(arg) > 0, "缺少参数") m.Start(fmt.Sprintf("db%d", Pulse.Capi("nsource", 1)), "数据存储", arg...) Pulse.Cap("stream", Pulse.Cap("nsource")) - m.Echo(m.Target.Name) + m.Echo(m.Target().Name) }}, "exec": &ctx.Command{Name: "exec sql [arg]", Help: "操作数据库", Appends: map[string]string{"last": "最后插入元组的标识", "nrow": "修改元组的数量"}, Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { - mdb, ok := m.Target.Server.(*MDB) + mdb, ok := m.Target().Server.(*MDB) m.Assert(ok, "目标模块类型错误") m.Assert(len(arg) > 0, "缺少参数") m.Assert(mdb.DB != nil, "数据库未打开") @@ -108,7 +108,7 @@ var Index = &ctx.Context{Name: "mdb", Help: "数据中心", m.Log("info", nil, "last(%d) nrow(%d)", id, n) }}, "query": &ctx.Command{Name: "query sql [arg]", Help: "执行查询语句", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { - mdb, ok := m.Target.Server.(*MDB) + mdb, ok := m.Target().Server.(*MDB) m.Assert(ok, "目标模块类型错误") m.Assert(len(arg) > 0, "缺少参数") m.Assert(mdb.DB != nil, "数据库未打开") diff --git a/src/context/nfs/nfs.go b/src/context/nfs/nfs.go index 40341867..451717a8 100644 --- a/src/context/nfs/nfs.go +++ b/src/context/nfs/nfs.go @@ -53,13 +53,13 @@ func (nfs *NFS) Start(m *ctx.Message, arg ...string) bool { func (nfs *NFS) Close(m *ctx.Message, arg ...string) bool { switch nfs.Context { - case m.Target: + case m.Target(): if nfs.file != nil { m.Log("info", nil, "%d close %s", Pulse.Capi("nfile", -1)+1, m.Cap("name")) nfs.file.Close() nfs.file = nil } - case m.Source: + case m.Source(): } return true } @@ -75,10 +75,10 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心", Commands: map[string]*ctx.Command{ "open": &ctx.Command{Name: "open file", Help: "打开文件, file: 文件名", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { m.Start(fmt.Sprintf("file%d", Pulse.Capi("nfile", 1)), "打开文件", arg...) - m.Echo(m.Target.Name) + m.Echo(m.Target().Name) }}, "read": &ctx.Command{Name: "read [size [pos]]", Help: "读取文件, size: 读取大小, pos: 读取位置", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { - nfs, ok := m.Target.Server.(*NFS) + nfs, ok := m.Target().Server.(*NFS) m.Assert(ok) var e error @@ -102,7 +102,7 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心", } }}, "write": &ctx.Command{Name: "write string [pos]", Help: "写入文件, string: 写入内容, pos: 写入位置", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { - nfs, ok := m.Target.Server.(*NFS) + nfs, ok := m.Target().Server.(*NFS) if m.Assert(ok); len(arg) > 1 { m.Cap("pos", arg[1]) } diff --git a/src/context/tcp/tcp.go b/src/context/tcp/tcp.go index 8acb8a9d..aaeffaf0 100644 --- a/src/context/tcp/tcp.go +++ b/src/context/tcp/tcp.go @@ -96,7 +96,7 @@ func (tcp *TCP) Start(m *ctx.Message, arg ...string) bool { for { c, e := tcp.Accept() m.Assert(e) - m.Spawn(Index).Put("option", "io", c).Put("option", "source", m.Source).Start(fmt.Sprintf("com%d", Pulse.Capi("nclient", 1)), "网络连接", "accept", c.RemoteAddr().String()) + m.Spawn(Index).Put("option", "io", c).Put("option", "source", m.Source()).Start(fmt.Sprintf("com%d", Pulse.Capi("nclient", 1)), "网络连接", "accept", c.RemoteAddr().String()) } return true @@ -104,7 +104,7 @@ func (tcp *TCP) Start(m *ctx.Message, arg ...string) bool { func (tcp *TCP) Close(m *ctx.Message, arg ...string) bool { switch tcp.Context { - case m.Target: + case m.Target(): if tcp.Listener != nil { m.Log("info", nil, "%d close %v", Pulse.Capi("nlisten", -1)+1, m.Cap("stream")) tcp.Listener.Close() @@ -115,10 +115,10 @@ func (tcp *TCP) Close(m *ctx.Message, arg ...string) bool { tcp.Conn.Close() tcp.Conn = nil } - case m.Source: + case m.Source(): if tcp.Conn != nil { msg := m.Spawn(tcp.Context) - if msg.Master = tcp.Context; !tcp.Context.Close(msg, arg...) { + if msg.Master(tcp.Context); !tcp.Context.Close(msg, arg...) { return false } } @@ -145,12 +145,12 @@ var Index = &ctx.Context{Name: "tcp", Help: "网络中心", m.Start(fmt.Sprintf("com%d", Pulse.Capi("nclient", 1)), "网络连接", m.Meta["detail"]...) }}, "send": &ctx.Command{Name: "send message", Help: "发送消息", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { - tcp, ok := m.Target.Server.(*TCP) + tcp, ok := m.Target().Server.(*TCP) m.Assert(ok && tcp.Conn != nil) tcp.Conn.Write([]byte(arg[0])) }}, "recv": &ctx.Command{Name: "recv size", Help: "接收消息", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { - tcp, ok := m.Target.Server.(*TCP) + tcp, ok := m.Target().Server.(*TCP) m.Assert(ok && tcp.Conn != nil) size, e := strconv.Atoi(arg[0]) m.Assert(e) diff --git a/src/context/web/web.go b/src/context/web/web.go index a66eaa82..1029061c 100644 --- a/src/context/web/web.go +++ b/src/context/web/web.go @@ -49,7 +49,7 @@ func (web *WEB) AppendJson(msg *ctx.Message) string { func (web *WEB) Trans(m *ctx.Message, key string, hand func(*ctx.Message, *ctx.Context, string, ...string)) { web.HandleFunc(key, func(w http.ResponseWriter, r *http.Request) { - msg := m.Spawn(m.Target).Set("detail", key) + msg := m.Spawn(m.Target()).Set("detail", key) for k, v := range r.Form { msg.Add("option", k, v...) } @@ -59,7 +59,7 @@ func (web *WEB) Trans(m *ctx.Message, key string, hand func(*ctx.Message, *ctx.C msg.Log("cmd", nil, "%s [] %v", key, msg.Meta["option"]) msg.Put("option", "request", r).Put("option", "response", w) - if hand(msg, msg.Target, key); len(msg.Meta["append"]) > 0 { + if hand(msg, msg.Target(), key); len(msg.Meta["append"]) > 0 { msg.Set("result", web.AppendJson(msg)) } @@ -119,7 +119,7 @@ func (web *WEB) Begin(m *ctx.Message, arg ...string) ctx.Server { } web.ServeMux = http.NewServeMux() - if mux, ok := m.Target.Server.(MUX); ok { + if mux, ok := m.Target().Server.(MUX); ok { for k, x := range web.Commands { if k[0] == '/' { mux.Trans(m, k, x.Hand) @@ -135,13 +135,13 @@ func (web *WEB) Start(m *ctx.Message, arg ...string) bool { m.Cap("directory", arg[0]) } - m.Travel(m.Target, func(m *ctx.Message) bool { - if h, ok := m.Target.Server.(http.Handler); ok && m.Cap("register") == "no" { + m.Travel(m.Target(), func(m *ctx.Message) bool { + if h, ok := m.Target().Server.(http.Handler); ok && m.Cap("register") == "no" { m.Cap("register", "yes") - p, i := m.Target, 0 + p, i := m.Target(), 0 m.BackTrace(func(m *ctx.Message) bool { - p = m.Target + p = m.Target() if i++; i == 2 { return false } @@ -149,11 +149,11 @@ func (web *WEB) Start(m *ctx.Message, arg ...string) bool { }) if s, ok := p.Server.(MUX); ok { - m.Log("info", p, "route %s -> %s", m.Cap("route"), m.Target.Name) + m.Log("info", p, "route %s -> %s", m.Cap("route"), m.Target().Name) s.Handle(m.Cap("route"), http.StripPrefix(path.Dir(m.Cap("route")), h)) } - if s, ok := m.Target.Server.(MUX); ok && m.Cap("directory") != "" { + if s, ok := m.Target().Server.(MUX); ok && m.Cap("directory") != "" { m.Log("info", nil, "dir / -> [%s]", m.Cap("directory")) s.Handle("/", http.FileServer(http.Dir(m.Cap("directory")))) } @@ -194,8 +194,8 @@ func (web *WEB) Start(m *ctx.Message, arg ...string) bool { func (web *WEB) Close(m *ctx.Message, arg ...string) bool { switch web.Context { - case m.Target: - case m.Source: + case m.Target(): + case m.Source(): } return true } @@ -205,10 +205,10 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心", Configs: map[string]*ctx.Config{}, Commands: map[string]*ctx.Command{ "serve": &ctx.Command{Name: "serve [directory [address [protocol]]]", Help: "开启应用服务", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { - m.Set("detail", arg...).Target.Start(m) + m.Set("detail", arg...).Target().Start(m) }}, "route": &ctx.Command{Name: "route directory|template|script route content", Help: "添加应用内容", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) { - mux, ok := m.Target.Server.(MUX) + mux, ok := m.Target().Server.(MUX) m.Assert(ok, "模块类型错误") m.Assert(len(arg) == 3, "缺少参数")