aboutsummaryrefslogtreecommitdiff
path: root/internal/events/event.go
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2018-02-09 18:56:00 +0100
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2018-02-09 18:56:00 +0100
commitb461343171726d99df20bfc4b4741f0fad0c95e0 (patch)
tree1ce014fb41a75fe66801d19879c665b652fdf756 /internal/events/event.go
parent51a6001bb92c2af95415ad631344be98e54da18c (diff)
downloadwireguard-go-b461343171726d99df20bfc4b4741f0fad0c95e0.tar.gz
wireguard-go-b461343171726d99df20bfc4b4741f0fad0c95e0.zip
Started migration to sub-packages
Diffstat (limited to '')
-rw-r--r--internal/events/event.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/internal/events/event.go b/internal/events/event.go
new file mode 100644
index 0000000..4412bbb
--- /dev/null
+++ b/internal/events/event.go
@@ -0,0 +1,36 @@
+package events
+
+import (
+ "sync"
+)
+
+type Event interface {
+ Contains(int) bool
+ Processed()
+ WaitForProcessed()
+}
+
+type EventStruct struct {
+ code int
+ lock sync.Mutex
+}
+
+func (event EventStruct) Contains(code int) bool {
+ return event.code&code != 0
+}
+
+func (event *EventStruct) WaitForProcessed() {
+ event.lock.Lock()
+}
+
+func (event *EventStruct) Processed() {
+ event.lock.Unlock()
+}
+
+func NewEvent(code int) Event {
+ event := &EventStruct{
+ code: code,
+ }
+ event.lock.Lock()
+ return event
+}