41 lines
791 B
Go
41 lines
791 B
Go
package serverimp
|
|
|
|
import (
|
|
"github.com/tech/sendico/pkg/mlogger"
|
|
"github.com/tech/sendico/pkg/server"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type Instance struct {
|
|
srv server.Application
|
|
logger mlogger.Logger
|
|
file string
|
|
debug bool
|
|
factory server.ServerFactoryT
|
|
}
|
|
|
|
func (i *Instance) Start() error {
|
|
var err error
|
|
if i.srv, err = i.factory(i.logger, i.file, i.debug); err != nil {
|
|
i.logger.Warn("Failed to create server instance", zap.Error(err))
|
|
return err
|
|
}
|
|
return i.srv.Start()
|
|
}
|
|
|
|
func (i *Instance) Shutdown() {
|
|
if i.srv != nil {
|
|
i.srv.Shutdown()
|
|
}
|
|
}
|
|
|
|
func NewInstance(factory server.ServerFactoryT, logger mlogger.Logger, file string, debug bool) *Instance {
|
|
return &Instance{
|
|
srv: nil,
|
|
logger: logger,
|
|
file: file,
|
|
debug: debug,
|
|
factory: factory,
|
|
}
|
|
}
|