diff options
Diffstat (limited to 'mixins.go')
-rwxr-xr-x | mixins.go | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/mixins.go b/mixins.go deleted file mode 100755 index aea08ef..0000000 --- a/mixins.go +++ /dev/null @@ -1,90 +0,0 @@ -package rutina - -import ( - "context" - "log" - "os" - "syscall" -) - -// Mixin interface -type Mixin interface { - apply(*Rutina) -} - -// MixinContext propagates user defined context to rutina -type MixinContext struct { - Context context.Context -} - -// WithContext propagates user defined context to rutina -func WithContext(context context.Context) *MixinContext { - return &MixinContext{Context: context} -} - -func (o MixinContext) apply(r *Rutina) { - ctx, cancel := context.WithCancel(o.Context) - r.ctx = ctx - r.Cancel = cancel -} - -// MixinLogger adds logger to rutina -type MixinLogger struct { - Logger *log.Logger -} - -// WithLogger adds custom logger to rutina -func WithLogger(logger *log.Logger) *MixinLogger { - return &MixinLogger{Logger: logger} -} - -// WithStdLogger adds standard logger to rutina -func WithStdLogger() *MixinLogger { - return &MixinLogger{Logger: log.New(os.Stdout, "[rutina]", log.LstdFlags)} -} - -func (o MixinLogger) apply(r *Rutina) { - r.logger = o.Logger -} - -// MixinErrChan turns on errors channel on rutina -type MixinErrChan struct { -} - -// WithErrChan turns on errors channel on rutina -func WithErrChan() *MixinErrChan { - return &MixinErrChan{} -} - -func (o MixinErrChan) apply(r *Rutina) { - r.errCh = make(chan error, 1) -} - -type LifecycleListener func(event Event, routineID int) - -type LifecycleMixin struct { - Listener LifecycleListener -} - -func (l LifecycleMixin) apply(r *Rutina) { - r.lifecycleListener = l.Listener -} - -func WithLifecycleListener(listener LifecycleListener) *LifecycleMixin { - return &LifecycleMixin{Listener: listener} -} - -type ListenOsSignalsMixin struct { - Signals []os.Signal -} - -func (l ListenOsSignalsMixin) apply(r *Rutina) { - r.autoListenSignals = l.Signals -} - -func WithListenOsSignals(signals ...os.Signal) *ListenOsSignalsMixin { - if len(signals) == 0 { - signals = []os.Signal{syscall.SIGINT, syscall.SIGTERM} - } - return &ListenOsSignalsMixin{Signals: signals} -} |