Browse Source

包注释添加

master
aceld 4 years ago
parent
commit
bb904b962b
  1. 11
      utils/globalobj.go
  2. 47
      ziface/iconnection.go
  3. 13
      ziface/iconnmanager.go
  4. 13
      ziface/idatapack.go
  5. 13
      ziface/imessage.go
  6. 13
      ziface/imsghandler.go
  7. 13
      ziface/irequest.go
  8. 13
      ziface/irouter.go
  9. 42
      ziface/iserver.go
  10. 9
      zlog/stdzlog.go
  11. 39
      zlog/zlogger.go
  12. 38
      zlog/zlogger_test.go

11
utils/globalobj.go

@ -1,3 +1,12 @@
// Package utils 提供zinx相关工具类函数
// 包括:
// 全局配置
// 配置文件加载
//
// 当前文件描述:
// @Title globalobj.go
// @Description 相关配置文件定义及加载方式
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package utils package utils
import ( import (
@ -114,6 +123,6 @@ func init() {
LogDebugClose: false, LogDebugClose: false,
} }
//从配置文件中加载一些用户配置的参数
//NOTE: 从配置文件中加载一些用户配置的参数
GlobalObject.Reload() GlobalObject.Reload()
} }

47
ziface/iconnection.go

@ -1,3 +1,16 @@
// Package ziface 主要提供zinx全部抽象层接口定义.
// 包括:
// IServer 服务mod接口
// IRouter 路由mod接口
// IConnection 连接mod层接口
// IMessage 消息mod接口
// IDataPack 消息拆解接口
// IMsgHandler 消息处理及协程池接口
//
// 当前文件描述:
// @Title iconnection.go
// @Description 全部连接相关方法声明
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package ziface package ziface
import ( import (
@ -7,28 +20,18 @@ import (
//定义连接接口 //定义连接接口
type IConnection interface { type IConnection interface {
//启动连接,让当前连接开始工作
Start()
//停止连接,结束当前连接状态M
Stop()
//返回ctx,用于用户自定义的go程获取连接退出状态
Context() context.Context
//从当前连接获取原始的socket TCPConn
GetTCPConnection() *net.TCPConn
//获取当前连接ID
GetConnID() uint32
//获取远程客户端地址信息
RemoteAddr() net.Addr
Start() //启动连接,让当前连接开始工作
Stop() //停止连接,结束当前连接状态M
Context() context.Context //返回ctx,用于用户自定义的go程获取连接退出状态
//直接将Message数据发送数据给远程的TCP客户端(无缓冲)
SendMsg(msgID uint32, data []byte) error
//直接将Message数据发送给远程的TCP客户端(有缓冲)
SendBuffMsg(msgID uint32, data []byte) error
GetTCPConnection() *net.TCPConn //从当前连接获取原始的socket TCPConn
GetConnID() uint32 //获取当前连接ID
RemoteAddr() net.Addr //获取远程客户端地址信息
//设置链接属性
SetProperty(key string, value interface{})
//获取链接属性
GetProperty(key string) (interface{}, error)
//移除链接属性
RemoveProperty(key string)
SendMsg(msgID uint32, data []byte) error //直接将Message数据发送数据给远程的TCP客户端(无缓冲)
SendBuffMsg(msgID uint32, data []byte) error //直接将Message数据发送给远程的TCP客户端(有缓冲)
SetProperty(key string, value interface{}) //设置链接属性
GetProperty(key string) (interface{}, error) //获取链接属性
RemoveProperty(key string) //移除链接属性
} }

13
ziface/iconnmanager.go

@ -1,3 +1,16 @@
// Package ziface 主要提供zinx全部抽象层接口定义.
// 包括:
// IServer 服务mod接口
// IRouter 路由mod接口
// IConnection 连接mod层接口
// IMessage 消息mod接口
// IDataPack 消息拆解接口
// IMsgHandler 消息处理及协程池接口
//
// 当前文件描述:
// @Title iconnmanager.go
// @Description 连接管理相关,包括添加、删除、通过一个连接ID获得连接对象,当前连接数量、清空全部连接等方法
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package ziface package ziface
/* /*

13
ziface/idatapack.go

@ -1,3 +1,16 @@
// Package ziface 主要提供zinx全部抽象层接口定义.
// 包括:
// IServer 服务mod接口
// IRouter 路由mod接口
// IConnection 连接mod层接口
// IMessage 消息mod接口
// IDataPack 消息拆解接口
// IMsgHandler 消息处理及协程池接口
//
// 当前文件描述:
// @Title idatapack.go
// @Description 消息的打包和解包方法
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package ziface package ziface
/* /*

13
ziface/imessage.go

@ -1,3 +1,16 @@
// Package ziface 主要提供zinx全部抽象层接口定义.
// 包括:
// IServer 服务mod接口
// IRouter 路由mod接口
// IConnection 连接mod层接口
// IMessage 消息mod接口
// IDataPack 消息拆解接口
// IMsgHandler 消息处理及协程池接口
//
// 当前文件描述:
// @Title imessage.go
// @Description 提供消息的基本方法
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package ziface package ziface
/* /*

13
ziface/imsghandler.go

@ -1,3 +1,16 @@
// Package ziface 主要提供zinx全部抽象层接口定义.
// 包括:
// IServer 服务mod接口
// IRouter 路由mod接口
// IConnection 连接mod层接口
// IMessage 消息mod接口
// IDataPack 消息拆解接口
// IMsgHandler 消息处理及协程池接口
//
// 当前文件描述:
// @Title imsghandler.go
// @Description 提供worker启动、处理消息业务调用等接口
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package ziface package ziface
/* /*

13
ziface/irequest.go

@ -1,3 +1,16 @@
// Package ziface 主要提供zinx全部抽象层接口定义.
// 包括:
// IServer 服务mod接口
// IRouter 路由mod接口
// IConnection 连接mod层接口
// IMessage 消息mod接口
// IDataPack 消息拆解接口
// IMsgHandler 消息处理及协程池接口
//
// 当前文件描述:
// @Title irequest.go
// @Description 提供连接请求全部接口声明
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package ziface package ziface
/* /*

13
ziface/irouter.go

@ -1,3 +1,16 @@
// Package ziface 主要提供zinx全部抽象层接口定义.
// 包括:
// IServer 服务mod接口
// IRouter 路由mod接口
// IConnection 连接mod层接口
// IMessage 消息mod接口
// IDataPack 消息拆解接口
// IMsgHandler 消息处理及协程池接口
//
// 当前文件描述:
// @Title irouter.go
// @Description 提供消息路由全部接口声明
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package ziface package ziface
/* /*

42
ziface/iserver.go

@ -1,23 +1,27 @@
// Package ziface 主要提供zinx全部抽象层接口定义.
// 包括:
// IServer 服务mod接口
// IRouter 路由mod接口
// IConnection 连接mod层接口
// IMessage 消息mod接口
// IDataPack 消息拆解接口
// IMsgHandler 消息处理及协程池接口
//
// 当前文件描述:
// @Title iserver.go
// @Description 提供Server抽象层全部接口声明
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package ziface package ziface
//定义服务器接口
//定义服务接口
type IServer interface { type IServer interface {
//启动服务器方法
Start()
//停止服务器方法
Stop()
//开启业务服务方法
Serve()
//路由功能:给当前服务注册一个路由业务方法,供客户端链接处理使用
AddRouter(msgID uint32, router IRouter)
//得到链接管理
GetConnMgr() IConnManager
//设置该Server的连接创建时Hook函数
SetOnConnStart(func(IConnection))
//设置该Server的连接断开时的Hook函数
SetOnConnStop(func(IConnection))
//调用连接OnConnStart Hook函数
CallOnConnStart(conn IConnection)
//调用连接OnConnStop Hook函数
CallOnConnStop(conn IConnection)
Start() //启动服务器方法
Stop() //停止服务器方法
Serve() //开启业务服务方法
AddRouter(msgID uint32, router IRouter) //路由功能:给当前服务注册一个路由业务方法,供客户端链接处理使用
GetConnMgr() IConnManager //得到链接管理
SetOnConnStart(func(IConnection)) //设置该Server的连接创建时Hook函数
SetOnConnStop(func(IConnection)) //设置该Server的连接断开时的Hook函数
CallOnConnStart(conn IConnection) //调用连接OnConnStart Hook函数
CallOnConnStop(conn IConnection) //调用连接OnConnStop Hook函数
} }

9
zlog/stdzlog.go

@ -1,3 +1,12 @@
// Package zlog 主要提供zinx相关日志记录接口
// 包括:
// stdzlog模块, 提供全局日志方法
// zlogger模块, 日志内部定义协议,均为对象类方法
//
// 当前文件描述:
// @Title stdzlog.go
// @Description 包裹zlogger日志方法,提供全局方法
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package zlog package zlog
/* /*

39
zlog/zlogger.go

@ -1,3 +1,12 @@
// Package zlog 主要提供zinx相关日志记录接口
// 包括:
// stdzlog模块, 提供全局日志方法
// zlogger模块, 日志内部定义协议,均为对象类方法
//
// 当前文件描述:
// @Title zlogger.go
// @Description 基础日志接口,包括Debug、Fatal等
// @Author Aceld - Thu Mar 11 10:32:29 CST 2019
package zlog package zlog
/* /*
@ -25,9 +34,9 @@ const (
BitDate = 1 << iota //日期标记位 2019/01/23 BitDate = 1 << iota //日期标记位 2019/01/23
BitTime //时间标记位 01:23:12 BitTime //时间标记位 01:23:12
BitMicroSeconds //微秒级标记位 01:23:12.111222 BitMicroSeconds //微秒级标记位 01:23:12.111222
BitLongFile // 完整文件名称 /home/go/src/zinx/server.go
BitShortFile // 最后文件名 server.go
BitLevel // 当前日志级别: 0(Debug), 1(Info), 2(Warn), 3(Error), 4(Panic), 5(Fatal)
BitLongFile //完整文件名称 /home/go/src/zinx/server.go
BitShortFile //最后文件名 server.go
BitLevel //当前日志级别: 0(Debug), 1(Info), 2(Warn), 3(Error), 4(Panic), 5(Fatal)
BitStdFlag = BitDate | BitTime //标准头部日志格式 BitStdFlag = BitDate | BitTime //标准头部日志格式
BitDefault = BitLevel | BitShortFile | BitStdFlag //默认日志头部格式 BitDefault = BitLevel | BitShortFile | BitStdFlag //默认日志头部格式
) )
@ -53,22 +62,14 @@ var levels = []string{
} }
type ZinxLogger struct { type ZinxLogger struct {
//确保多协程读写文件,防止文件内容混乱,做到协程安全
mu sync.Mutex
//每行log日志的前缀字符串,拥有日志标记
prefix string
//日志标记位
flag int
//日志输出的文件描述符
out io.Writer
//输出的缓冲区
buf bytes.Buffer
//当前日志绑定的输出文件
file *os.File
//是否打印调试debug信息
debugClose bool
//获取日志文件名和代码上述的runtime.Call 的函数调用层数
calldDepth int
mu sync.Mutex //确保多协程读写文件,防止文件内容混乱,做到协程安全
prefix string //每行log日志的前缀字符串,拥有日志标记
flag int //日志标记位
out io.Writer //日志输出的文件描述符
buf bytes.Buffer //输出的缓冲区
file *os.File //当前日志绑定的输出文件
debugClose bool //是否打印调试debug信息
calldDepth int //获取日志文件名和代码上述的runtime.Call 的函数调用层数
} }
/* /*

38
zlog/zlogger_test.go

@ -1,39 +1,39 @@
package zlog
package zlog_test
import ( import (
"github.com/aceld/zinx/zlog"
"testing" "testing"
) )
func TestStdZLog(t *testing.T) { func TestStdZLog(t *testing.T) {
//测试 默认debug输出 //测试 默认debug输出
Debug("zinx debug content1")
Debug("zinx debug content2")
zlog.Debug("zinx debug content1")
zlog.Debug("zinx debug content2")
Debugf(" zinx debug a = %d\n", 10)
zlog.Debugf(" zinx debug a = %d\n", 10)
//设置log标记位,加上长文件名称 和 微秒 标记 //设置log标记位,加上长文件名称 和 微秒 标记
ResetFlags(BitDate | BitLongFile | BitLevel)
Info("zinx info content")
zlog.ResetFlags(zlog.BitDate | zlog.BitLongFile | zlog.BitLevel)
zlog.Info("zinx info content")
//设置日志前缀,主要标记当前日志模块 //设置日志前缀,主要标记当前日志模块
SetPrefix("MODULE")
Error("zinx error content")
zlog.SetPrefix("MODULE")
zlog.Error("zinx error content")
//添加标记位 //添加标记位
AddFlag(BitShortFile | BitTime)
Stack(" Zinx Stack! ")
zlog.AddFlag(zlog.BitShortFile | zlog.BitTime)
zlog.Stack(" Zinx Stack! ")
//设置日志写入文件 //设置日志写入文件
SetLogFile("./log", "testfile.log")
Debug("===> zinx debug content ~~666")
Debug("===> zinx debug content ~~888")
Error("===> zinx Error!!!! ~~~555~~~")
zlog.SetLogFile("./log", "testfile.log")
zlog.Debug("===> zinx debug content ~~666")
zlog.Debug("===> zinx debug content ~~888")
zlog.Error("===> zinx Error!!!! ~~~555~~~")
//关闭debug调试 //关闭debug调试
CloseDebug()
Debug("===> 我不应该出现~!")
Debug("===> 我不应该出现~!")
Error("===> zinx Error after debug close !!!!")
zlog.CloseDebug()
zlog.Debug("===> 我不应该出现~!")
zlog.Debug("===> 我不应该出现~!")
zlog.Error("===> zinx Error after debug close !!!!")
} }
Loading…
Cancel
Save