/
plugin_mgt.go
51 lines (44 loc) · 1.68 KB
/
plugin_mgt.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package plugins
import (
"github.com/coschain/contentos-go/iservices"
"github.com/coschain/contentos-go/node"
)
type PluginMgt struct {
list []string
}
func NewPluginMgt(list []string) *PluginMgt {
return &PluginMgt{list: list}
}
func (p *PluginMgt) RegisterTrxPoolDependents(app *node.Node, cfg *node.Config) {
_ = app.Register(FollowServiceName, func(ctx *node.ServiceContext) (node.Service, error) {
return NewFollowService(ctx, app.Log)
})
_ = app.Register(PostServiceName, func(ctx *node.ServiceContext) (node.Service, error) {
return NewPostService(ctx)
})
_ = app.Register(TrxServiceName, func(ctx *node.ServiceContext) (node.Service, error) {
return NewTrxSerVice(ctx, app.Log)
})
}
func (p *PluginMgt) RegisterSQLServices(app *node.Node, cfg *node.Config) {
for _, l := range p.list {
switch l {
case TrxMysqlServiceName:
_ = app.Register(TrxMysqlServiceName, func(ctx *node.ServiceContext) (service node.Service, e error) {
return NewTrxMysqlSerVice(ctx, cfg.Database, app.Log)
})
case iservices.DailyStatisticServiceName:
_ = app.Register(iservices.DailyStatisticServiceName, func(ctx *node.ServiceContext) (node.Service, error) {
return NewDailyStatisticService(ctx, cfg.Database, app.Log)
})
case iservices.BlockLogServiceName:
_ = app.Register(iservices.BlockLogServiceName, func(ctx *node.ServiceContext) (service node.Service, e error) {
return NewBlockLogService(ctx, cfg.Database, app.Log)
})
case iservices.BlockLogProcessServiceName:
_ = app.Register(iservices.BlockLogProcessServiceName, func(ctx *node.ServiceContext) (service node.Service, e error) {
return NewBlockLogProcessService(ctx, cfg.Database, app.Log)
})
}
}
}