/
interface.go
130 lines (110 loc) · 3.6 KB
/
interface.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// Package psmb a proactive service library for modbus daemon.
//
// Define high-level Contracts(interface) and data types.
//
// By taka@cmwang.net
//
package psmb
//
// Interfaces
//
type (
// IProactiveService proactive service contracts,
// all services should implement the following methods.
IProactiveService interface {
// Start enable proactive service
Start()
// Stop disable proactive service
Stop()
// ParseRequest parse requests from IT
ParseRequest(msg []string) (interface{}, error)
// HandleRequest handle requests from IT
HandleRequest(cmd string, r interface{}) error
// ParseResponse parse responses from OT
ParseResponse(msg []string) (interface{}, error)
// HandleResponse handle responses from OT
HandleResponse(cmd string, r interface{}) error
}
// IWriterTaskDataStore write task interface
// (Tid, Command) map
IWriterTaskDataStore interface {
// Add add request to write task map,
// params: TID, CMD strings.
Add(tid, cmd string)
// Get get request from write task map,
// params: TID string,
// return: cmd string, exist flag.
Get(tid string) (string, bool)
// Delete remove request from write task map
// params: TID string.
Delete(tid string)
}
// ReaderTask read/poll task request
ReaderTask struct {
// Name task name
Name string
// Cmd zmq frame 1
Cmd string
// Req request structure
Req interface{}
}
// IReaderTaskDataStore read task interface
IReaderTaskDataStore interface {
// Add add request to read/poll task map
Add(name, tid, cmd string, req interface{}) error
// GetTaskByID get request via TID from read/poll task map
GetTaskByID(tid string) (interface{}, bool)
// GetTaskByName get request via poll name from read/poll task map
GetTaskByName(name string) (interface{}, bool)
// GetAll get all requests from read/poll task map
// ex: mbtcp: []MbtcpPollStatus
GetAll() interface{}
// DeleteAll remove all requests from read/poll task map
DeleteAll()
// DeleteTaskByID remove request from via TID from read/poll task map
DeleteTaskByID(tid string)
// DeleteTaskByName remove request via poll name from read/poll task map
DeleteTaskByName(name string)
// UpdateIntervalByName update poll request interval
UpdateIntervalByName(name string, interval uint64) error
// UpdateToggleByName update poll request enabled flag
UpdateToggleByName(name string, toggle bool) error
// UpdateAllToggles update all poll requests enabled flag
UpdateAllToggles(toggle bool)
}
// IHistoryDataStore history interface
IHistoryDataStore interface {
// Add add history
Add(name string, data interface{}) error
// Get get history within range
Get(name string, limit int) (map[string]string, error)
// GetAll get all history
GetAll(name string) (map[string]string, error)
// GetLatest get latest history
GetLatest(name string) (string, error)
}
// IFilterDataStore filter interface
IFilterDataStore interface {
// Add add request to filter map
Add(name string, req interface{}) error
// Get get request from filter map
Get(name string) (interface{}, bool)
// GetAll get all request from filter map
GetAll() interface{}
// Delete delete request from filter map
Delete(name string)
// DeleteAll delete all requests from filter map
DeleteAll()
// UpdateToggle update filter request enabled flag
UpdateToggle(name string, toggle bool) error
// UpdateAllToggles update all filter requests enabled flag
UpdateAllToggles(toggle bool)
}
// IConfig config interface
IConfig interface {
// setLogger init logger function
setLogger()
// initConfig int config function
initConfig()
}
)