/
event_context.go
116 lines (95 loc) · 2.27 KB
/
event_context.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
package candishared
import (
"bytes"
"context"
)
// EventContext worker context in handler
type EventContext struct {
ctx context.Context
workerType, handlerRoute string
header map[string]string
key string
err error
messageBuff *bytes.Buffer
}
// NewEventContext event context constructor
func NewEventContext(buff *bytes.Buffer) *EventContext {
buff.Reset()
return &EventContext{
messageBuff: buff,
}
}
// Reset method
func (e *EventContext) Reset() {
e.messageBuff.Reset()
e.ctx = nil
e.workerType = ""
e.header = nil
e.handlerRoute = ""
e.key = ""
e.err = nil
}
// SetContext setter
func (e *EventContext) SetContext(ctx context.Context) {
e.ctx = ctx
}
// SetWorkerType setter
func (e *EventContext) SetWorkerType(w string) {
e.workerType = w
}
// SetHandlerRoute setter can contains unique topic name, key, or task name
func (e *EventContext) SetHandlerRoute(h string) {
e.handlerRoute = h
}
// SetHeader setter
func (e *EventContext) SetHeader(header map[string]string) {
e.header = header
}
// SetKey setter
func (e *EventContext) SetKey(key string) {
e.key = key
}
// SetError setter
func (e *EventContext) SetError(err error) {
e.err = err
}
// Context get context
func (e *EventContext) Context() context.Context {
return e.ctx
}
// WorkerType get worker type
func (e *EventContext) WorkerType() string {
return e.workerType
}
// Header get context
func (e *EventContext) Header() map[string]string {
return e.header
}
// HandlerRoute get handler name, contains unique topic name, or task name
func (e *EventContext) HandlerRoute() string {
return e.handlerRoute
}
// Key get key
func (e *EventContext) Key() string {
return e.key
}
// Message get context
func (e *EventContext) Message() []byte {
return e.messageBuff.Bytes()
}
// Err get error
func (e *EventContext) Err() error {
return e.err
}
// Read implement io.Reader
func (e *EventContext) Read(p []byte) (n int, err error) {
return e.messageBuff.Read(p)
}
// Write implement io.Writer
func (e *EventContext) Write(p []byte) (n int, err error) {
return e.messageBuff.Write(p)
}
// WriteString write string to buffer
func (e *EventContext) WriteString(s string) (n int, err error) {
return e.messageBuff.WriteString(s)
}