2020-12-30 16:03:01 +00:00
|
|
|
//go:generate mockgen -source=$GOFILE -destination=./../../internal/mock/audit/audit.mock.go -package=audit_mock
|
|
|
|
|
|
|
|
package audit
|
|
|
|
|
|
|
|
import (
|
|
|
|
"errors"
|
|
|
|
"io"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
ErrSinkAlreadyRegistered = errors.New("sink with same name already registered")
|
|
|
|
)
|
|
|
|
|
|
|
|
type Emitter interface {
|
|
|
|
Emit(ev Event)
|
|
|
|
}
|
|
|
|
|
2021-01-13 20:38:52 +00:00
|
|
|
type CloseHandle func()
|
|
|
|
|
2020-12-30 16:03:01 +00:00
|
|
|
type Sink interface {
|
|
|
|
Name() string
|
2021-01-13 20:38:52 +00:00
|
|
|
OnSubscribe(evs <-chan Event, close CloseHandle)
|
2020-12-30 16:03:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type EventStream interface {
|
|
|
|
io.Closer
|
|
|
|
Emitter
|
|
|
|
RegisterSink(s Sink) error
|
|
|
|
Sinks() []string
|
2021-01-13 20:38:52 +00:00
|
|
|
RemoveSink(name string)
|
2020-12-30 16:03:01 +00:00
|
|
|
}
|