package components //----------------- //----net start---- //----------------- type ( //网络包头 IHead interface { GetDataLen() uint32 //获取消息数据段长度 GetMsgID() uint32 //获取消息ID GetErrCode() int32 //获取消息错误码 GetPreserve() uint32 //获取预留数据 } //网络包 IMessage interface { GetHeader() IHead //获取消息头 SetHeader(header IHead) //设置消息头 GetData() []byte //获取消息内容 SetData([]byte) //设置消息内容 SetSession(IConnection) //设置连接 GetSession() IConnection //获取连接 } //网络拆包解包器 ISplitter interface { UnPack([]byte) (IMessage, error) Pack(cmd uint32, data []byte, errcode int32, preserve uint32) ([]byte, error) ParseMsg(data []byte, atEOF bool) (advance int, token []byte, err error) GetHeadLen() uint32 } ConnectionCallback func(IConnection) CloseCallback func(IConnection) MessageCallback func(IMessage) TimerCallback func(IConnection) //链接 IConnection interface { GetID() uint32 Start() Stop() Send(code int32, cmd uint32, b []byte) error SetConnectionCallback(ConnectionCallback) SetMessageCallback(MessageCallback) SetCloseCallback(CloseCallback) SetTimerCallback(TimerCallback) } //connManage IConnManage interface { AddConn(id uint32, connection IConnection) GetConn(id uint32) IConnection DelConn(id uint32) IConnection Range(f func(key interface{}, value interface{}) bool) StopAllConns() } //server IServer interface { Start() error Stop() GetSplitter() ISplitter GetPlugin() IPlugin GetAction(uint32) interface{} SetActions(map[interface{}]interface{}) GetConnManage() IConnManage SetConnectionCallback(ConnectionCallback) SetMessageCallback(MessageCallback) SetCloseCallback(CloseCallback) SetTimerCallback(TimerCallback) } //Connector IConnector interface { Connect() error DisConnect() Send(cmd uint32, b []byte) } //httpserver IHttp interface { Start() error Stop() BindHandler(interface{}) } ActionHandler func(msg IMessage) (int32, interface{}) //用于热更逻辑的插件接口 IPlugin interface { LoadPlugin() error SetActions(map[interface{}]interface{}) GetAction(uint32) interface{} } ) //----------------- //-----db start---- //----------------- type ( IDB interface { CreateTable() error Create() (interface{}, error) Save() error Load() error FindOne() error UpdateProperty(key string, val interface{}) error UpdateProperties(properties map[string]interface{}) error SetUnique(key string) (string, error) } ISchema interface { Init() GetDB() IDB GetPri() interface{} GetSchema() interface{} GetSchemaName() string Load() error Create() error Update() SetProperty(key string, val interface{}) SetProperties(properties map[string]interface{}) } ) //----------------- //-----db end------ //-----------------