probe/service/ProbeClientService.go
crusader 264c1fc72b ing
2018-04-20 00:03:58 +09:00

67 lines
1.3 KiB
Go

package service
import (
"reflect"
cda "git.loafle.net/commons/di-go/annotation"
cdr "git.loafle.net/commons/di-go/registry"
// For annotation
_ "git.loafle.net/overflow/commons-go/core/annotation"
"git.loafle.net/overflow/probe/client/central"
)
var ProbeClientServiceType = reflect.TypeOf((*ProbeClientService)(nil))
func init() {
cdr.RegisterType(ProbeClientServiceType)
}
type ProbeClientService struct {
RPCClientService
cda.TypeAnnotation `annotation:"@overflow:RPCService()"`
DiscoveryService *DiscoveryService `annotation:"@Inject()"`
EncryptionKey string
}
func (s *ProbeClientService) InitService() error {
if err := s.RPCClientService.InitService(); nil != err {
return err
}
return nil
}
func (s *ProbeClientService) StartService() error {
if err := s.RPCClientService.StartService(); nil != err {
return err
}
client, err := central.NewProbe(s.HandleEncryptionKey, s.DiscoveryService)
if nil != err {
return err
}
s.client = client
if err := s.client.Start(); nil != err {
return err
}
return nil
}
func (s *ProbeClientService) StopService() {
s.RPCClientService.StopService()
}
func (s *ProbeClientService) DestroyService() {
s.RPCClientService.DestroyService()
}
func (s *ProbeClientService) HandleEncryptionKey(encryptionKey string) {
s.EncryptionKey = encryptionKey
}