package service import ( "fmt" "reflect" cda "git.loafle.net/commons/di-go/annotation" cdr "git.loafle.net/commons/di-go/registry" crp "git.loafle.net/commons/rpc-go/protocol" // For annotation _ "git.loafle.net/overflow/commons-go/core/annotation" ) var ProbeServiceType = reflect.TypeOf((*ProbeService)(nil)) func init() { cdr.RegisterType(ProbeServiceType) } type ProbeService struct { cda.TypeAnnotation `annotation:"@overflow:RPCService()"` RPCClientCodec crp.ClientCodec `annotation:"@Resource(name='CONTAINER_RPC_CLIENT_CODEC')"` RPCWriteChan chan<- []byte `annotation:"@Resource(name='CONTAINER_RPC_WRITE_CHAN')"` } func (s *ProbeService) InitService() error { return nil } func (s *ProbeService) StartService() error { return nil } func (s *ProbeService) StopService() { } func (s *ProbeService) DestroyService() { } func (s *ProbeService) Send(method string, params ...interface{}) error { buf, err := s.RPCClientCodec.NewRequest(method, params, nil) if nil != err { return err } select { case s.RPCWriteChan <- buf: default: return fmt.Errorf("cannot write to rpcWriteChan") } return nil }