Blame view

common/components/icompontents.go 3.15 KB
0e5d52de   zhangqijia   reactor: 重构底层框架1.0
1
2
  package components
  
4255fd8e   zhangqijia   feat: 更新字段
3
4
  import "google.golang.org/protobuf/reflect/protoreflect"
  
765431a4   zhangqijia   增加schema接口, 抽象 mo...
5
6
7
8
9
10
11
12
13
14
15
16
17
  //-----------------
  //----net start----
  //-----------------
  type (
  	//网络包头
  	IHead interface {
  		GetDataLen() uint32  //获取消息数据段长度
  		GetMsgID() uint32    //获取消息ID
  		GetErrCode() int32   //获取消息错误码
  		GetPreserve() uint32 //获取预留数据
  	}
  	//网络包
  	IMessage interface {
765431a4   zhangqijia   增加schema接口, 抽象 mo...
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  		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
  	}
b499527e   zhangqijia   feat: 消息包用aes加密
34
35
36
37
38
39
  	//加解密
  	IEncipher interface {
  		Encrypt([]byte) ([]byte, error)
  		Decrypt([]byte) ([]byte, error)
  	}
  
765431a4   zhangqijia   增加schema接口, 抽象 mo...
40
41
42
43
44
45
  	ConnectionCallback func(IConnection)
  	CloseCallback      func(IConnection)
  	MessageCallback    func(IMessage)
  	TimerCallback      func(IConnection)
  	//链接
  	IConnection interface {
58e37bfe   zhangqijia   add sync.Pool to ...
46
  		GetID() uint32
765431a4   zhangqijia   增加schema接口, 抽象 mo...
47
48
  		Start()
  		Stop()
4255fd8e   zhangqijia   feat: 更新字段
49
  		Send(errCode int32, cmd uint32, b []byte) error
765431a4   zhangqijia   增加schema接口, 抽象 mo...
50
51
52
53
54
55
  
  		SetConnectionCallback(ConnectionCallback)
  		SetMessageCallback(MessageCallback)
  		SetCloseCallback(CloseCallback)
  		SetTimerCallback(TimerCallback)
  	}
cd2f96ab   zhangqijia   fix: 优化连接管理
56
57
  	//connManage
  	IConnManage interface {
58e37bfe   zhangqijia   add sync.Pool to ...
58
59
60
  		AddConn(id uint32, connection IConnection)
  		GetConn(id uint32) IConnection
  		DelConn(id uint32) IConnection
cd2f96ab   zhangqijia   fix: 优化连接管理
61
62
63
  		Range(f func(key interface{}, value interface{}) bool)
  		StopAllConns()
  	}
765431a4   zhangqijia   增加schema接口, 抽象 mo...
64
65
66
67
68
69
  	//server
  	IServer interface {
  		Start() error
  		Stop()
  
  		GetSplitter() ISplitter
765431a4   zhangqijia   增加schema接口, 抽象 mo...
70
71
  		GetPlugin() IPlugin
  		GetAction(uint32) interface{}
69d286a7   zhangqijia   fix: 插件用来做部分热更
72
  		SetActions(map[interface{}]interface{})
cd2f96ab   zhangqijia   fix: 优化连接管理
73
  		GetConnManage() IConnManage
765431a4   zhangqijia   增加schema接口, 抽象 mo...
74
75
76
77
78
79
80
  
  		SetConnectionCallback(ConnectionCallback)
  		SetMessageCallback(MessageCallback)
  		SetCloseCallback(CloseCallback)
  		SetTimerCallback(TimerCallback)
  	}
  
54b3f133   zhangqijia   add connector int...
81
82
83
84
85
86
87
88
  	//Connector
  	IConnector interface {
  		Connect() error
  		DisConnect()
  
  		Send(cmd uint32, b []byte)
  	}
  
765431a4   zhangqijia   增加schema接口, 抽象 mo...
89
90
91
92
93
94
  	//httpserver
  	IHttp interface {
  		Start() error
  		Stop()
  		BindHandler(interface{})
  	}
69d286a7   zhangqijia   fix: 插件用来做部分热更
95
  	ActionHandler func(msg IMessage) (int32, interface{})
765431a4   zhangqijia   增加schema接口, 抽象 mo...
96
97
98
99
100
101
  	//用于热更逻辑的插件接口
  	IPlugin interface {
  		LoadPlugin() error
  		SetActions(map[interface{}]interface{})
  		GetAction(uint32) interface{}
  	}
765431a4   zhangqijia   增加schema接口, 抽象 mo...
102
103
104
105
106
107
108
109
110
111
  )
  
  //-----------------
  //-----db start----
  //-----------------
  type (
  	IDB interface {
  		CreateTable() error
  
  		Create() (interface{}, error)
8d983031   zhangqijia   loginReq uid -> t...
112
  		Save() error
765431a4   zhangqijia   增加schema接口, 抽象 mo...
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
  		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
4255fd8e   zhangqijia   feat: 更新字段
131
  		Save() error
765431a4   zhangqijia   增加schema接口, 抽象 mo...
132
133
134
135
  		Update()
  
  		SetProperty(key string, val interface{})
  		SetProperties(properties map[string]interface{})
b499527e   zhangqijia   feat: 消息包用aes加密
136
  		ParseFields(message protoreflect.Message, properties map[string]interface{}) []int32
765431a4   zhangqijia   增加schema接口, 抽象 mo...
137
138
139
140
141
142
  	}
  )
  
  //-----------------
  //-----db end------
  //-----------------