ing
This commit is contained in:
parent
35e8be57fd
commit
528e27a4ab
19
client/client-context.go
Normal file
19
client/client-context.go
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
package client
|
||||||
|
|
||||||
|
import (
|
||||||
|
cuc "git.loafle.net/commons/util-go/context"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ClientCtx interface {
|
||||||
|
cuc.Context
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClientCtx(parent cuc.Context) ClientCtx {
|
||||||
|
return &clientCtx{
|
||||||
|
Context: cuc.NewContext(parent),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type clientCtx struct {
|
||||||
|
cuc.Context
|
||||||
|
}
|
72
client/client-handler.go
Normal file
72
client/client-handler.go
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
package client
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sync/atomic"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ClientHandler interface {
|
||||||
|
GetName() string
|
||||||
|
GetConnector() Connector
|
||||||
|
|
||||||
|
ClientCtx() ClientCtx
|
||||||
|
|
||||||
|
Init(clientCtx ClientCtx) error
|
||||||
|
OnStart(clientCtx ClientCtx) error
|
||||||
|
OnStop(clientCtx ClientCtx)
|
||||||
|
Destroy(clientCtx ClientCtx)
|
||||||
|
|
||||||
|
Validate() error
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClientHandlers struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Connector Connector `json:"-"`
|
||||||
|
|
||||||
|
validated atomic.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ch *ClientHandlers) ClientCtx() ClientCtx {
|
||||||
|
return NewClientCtx(nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ch *ClientHandlers) Init(clientCtx ClientCtx) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ch *ClientHandlers) OnStart(clientCtx ClientCtx) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ch *ClientHandlers) OnStop(clientCtx ClientCtx) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ch *ClientHandlers) Destroy(clientCtx ClientCtx) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ch *ClientHandlers) GetName() string {
|
||||||
|
return ch.Name
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ch *ClientHandlers) GetConnector() Connector {
|
||||||
|
return ch.Connector
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ch *ClientHandlers) Validate() error {
|
||||||
|
if nil != ch.validated.Load() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
ch.validated.Store(true)
|
||||||
|
|
||||||
|
if nil == ch.Connector {
|
||||||
|
return fmt.Errorf("Connector is not valid")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := ch.Connector.Validate(); nil != err {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user