diff --git a/services/data_service/internal/manager/api.go b/services/data_service/internal/manager/api.go new file mode 100644 index 0000000..8995f04 --- /dev/null +++ b/services/data_service/internal/manager/api.go @@ -0,0 +1,22 @@ +package manager + +import ( + "time" + + "github.com/google/uuid" + "gitlab.michelsen.id/phillmichelsen/tessera/services/data_service/internal/domain" + "gitlab.michelsen.id/phillmichelsen/tessera/services/data_service/internal/provider" +) + +type SessionController interface { + NewSession(idleAfter time.Duration) uuid.UUID + AttachClient(id uuid.UUID, inBuf, outBuf int) (chan<- domain.Message, <-chan domain.Message, error) + DetachClient(id uuid.UUID) error + ConfigureSession(id uuid.UUID, next []domain.Identifier) error + CloseSession(id uuid.UUID) error +} + +type ProviderController interface { + AddProvider(name string, p provider.Provider) error + RemoveProvider(name string) error +} diff --git a/services/data_service/internal/manager/manager.go b/services/data_service/internal/manager/manager.go index ff6192a..dbd490a 100644 --- a/services/data_service/internal/manager/manager.go +++ b/services/data_service/internal/manager/manager.go @@ -47,7 +47,7 @@ func NewManager(r *router.Router) *Manager { return m } -// Public API (posts commands to loop) +// API // AddProvider adds and starts a new provider. func (m *Manager) AddProvider(name string, p provider.Provider) error { diff --git a/services/data_service/internal/worker/stateful.go b/services/data_service/internal/worker/stateful.go deleted file mode 100644 index 4df0094..0000000 --- a/services/data_service/internal/worker/stateful.go +++ /dev/null @@ -1 +0,0 @@ -package worker diff --git a/services/data_service/internal/worker/stateless.go b/services/data_service/internal/worker/stateless.go deleted file mode 100644 index 4df0094..0000000 --- a/services/data_service/internal/worker/stateless.go +++ /dev/null @@ -1 +0,0 @@ -package worker diff --git a/services/data_service/internal/worker/worker.go b/services/data_service/internal/worker/worker.go new file mode 100644 index 0000000..f52cdd8 --- /dev/null +++ b/services/data_service/internal/worker/worker.go @@ -0,0 +1,12 @@ +package worker + +import ( + "github.com/google/uuid" + "gitlab.michelsen.id/phillmichelsen/tessera/services/data_service/internal/manager" +) + +type Worker interface { + ID() uuid.UUID + Start(cfg map[string]string, controller manager.SessionController) error + Stop() +}