diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2018-02-09 18:56:00 +0100 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2018-02-09 18:56:00 +0100 |
commit | b461343171726d99df20bfc4b4741f0fad0c95e0 (patch) | |
tree | 1ce014fb41a75fe66801d19879c665b652fdf756 /internal/events | |
parent | 51a6001bb92c2af95415ad631344be98e54da18c (diff) |
Started migration to sub-packages
Diffstat (limited to 'internal/events')
-rw-r--r-- | internal/events/event.go | 36 |
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 +} |