forked from Silverfish/proton-bridge
feat(GODT-2822): Integrate and activate all service
The bridge now runs on the new architecture.
This commit is contained in:
@ -20,6 +20,9 @@ package events
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/ProtonMail/gluon/async"
|
||||
"github.com/ProtonMail/gluon/watcher"
|
||||
)
|
||||
|
||||
type Event interface {
|
||||
@ -39,3 +42,22 @@ type EventPublisher interface {
|
||||
type NullEventPublisher struct{}
|
||||
|
||||
func (NullEventPublisher) PublishEvent(_ context.Context, _ Event) {}
|
||||
|
||||
type Subscription interface {
|
||||
Add(ofType ...Event) *watcher.Watcher[Event]
|
||||
Remove(watcher *watcher.Watcher[Event])
|
||||
}
|
||||
|
||||
type NullSubscription struct{}
|
||||
|
||||
func (n NullSubscription) Add(ofType ...Event) *watcher.Watcher[Event] {
|
||||
return watcher.New[Event](&async.NoopPanicHandler{}, ofType...)
|
||||
}
|
||||
|
||||
func (n NullSubscription) Remove(watcher *watcher.Watcher[Event]) {
|
||||
watcher.Close()
|
||||
}
|
||||
|
||||
func NewNullSubscription() *NullSubscription {
|
||||
return &NullSubscription{}
|
||||
}
|
||||
|
||||
@ -37,6 +37,22 @@ func (event IMAPServerStopped) String() string {
|
||||
return "IMAPServerStopped"
|
||||
}
|
||||
|
||||
type IMAPServerClosed struct {
|
||||
eventBase
|
||||
}
|
||||
|
||||
func (event IMAPServerClosed) String() string {
|
||||
return "IMAPServerClosed"
|
||||
}
|
||||
|
||||
type IMAPServerCreated struct {
|
||||
eventBase
|
||||
}
|
||||
|
||||
func (event IMAPServerCreated) String() string {
|
||||
return "IMAPServerCreated"
|
||||
}
|
||||
|
||||
type IMAPServerError struct {
|
||||
eventBase
|
||||
|
||||
|
||||
Reference in New Issue
Block a user