1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-10-28 03:54:04 -04:00

decouple commander interface from grpc

This commit is contained in:
Darien Raymond
2018-02-08 23:24:35 +01:00
parent 495ae1c5e3
commit d9040b571d
6 changed files with 66 additions and 56 deletions

View File

@@ -2,19 +2,11 @@ package core
import (
"sync"
"google.golang.org/grpc"
)
// ServiceRegistryCallback is a callback function for registering services.
type ServiceRegistryCallback func(s *grpc.Server)
// Commander is a feature that accepts commands from external source.
type Commander interface {
Feature
// RegisterService registers a service into this Commander.
RegisterService(ServiceRegistryCallback)
}
type syncCommander struct {
@@ -22,17 +14,6 @@ type syncCommander struct {
Commander
}
func (c *syncCommander) RegisterService(callback ServiceRegistryCallback) {
c.RLock()
defer c.RUnlock()
if c.Commander == nil {
return
}
c.Commander.RegisterService(callback)
}
func (c *syncCommander) Start() error {
c.RLock()
defer c.RUnlock()