reflection: accept interface instead of grpc.Server struct in Register() (#4340)
This commit is contained in:
@ -54,9 +54,19 @@ import (
|
|||||||
"google.golang.org/grpc/status"
|
"google.golang.org/grpc/status"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// GRPCServer is the interface provided by a gRPC server. It is implemented by
|
||||||
|
// *grpc.Server, but could also be implemented by other concrete types. It acts
|
||||||
|
// as a registry, for accumulating the services exposed by the server.
|
||||||
|
type GRPCServer interface {
|
||||||
|
grpc.ServiceRegistrar
|
||||||
|
GetServiceInfo() map[string]grpc.ServiceInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ GRPCServer = (*grpc.Server)(nil)
|
||||||
|
|
||||||
type serverReflectionServer struct {
|
type serverReflectionServer struct {
|
||||||
rpb.UnimplementedServerReflectionServer
|
rpb.UnimplementedServerReflectionServer
|
||||||
s *grpc.Server
|
s GRPCServer
|
||||||
|
|
||||||
initSymbols sync.Once
|
initSymbols sync.Once
|
||||||
serviceNames []string
|
serviceNames []string
|
||||||
@ -64,7 +74,7 @@ type serverReflectionServer struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Register registers the server reflection service on the given gRPC server.
|
// Register registers the server reflection service on the given gRPC server.
|
||||||
func Register(s *grpc.Server) {
|
func Register(s GRPCServer) {
|
||||||
rpb.RegisterServerReflectionServer(s, &serverReflectionServer{
|
rpb.RegisterServerReflectionServer(s, &serverReflectionServer{
|
||||||
s: s,
|
s: s,
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user