reflection: accept interface instead of grpc.Server struct in Register() (#4340)

This commit is contained in:
Joshua Humphries
2021-04-27 16:15:08 -04:00
committed by GitHub
parent 52a707c0da
commit 145f12a95b

View File

@ -54,9 +54,19 @@ import (
"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 {
rpb.UnimplementedServerReflectionServer
s *grpc.Server
s GRPCServer
initSymbols sync.Once
serviceNames []string
@ -64,7 +74,7 @@ type serverReflectionServer struct {
}
// Register registers the server reflection service on the given gRPC server.
func Register(s *grpc.Server) {
func Register(s GRPCServer) {
rpb.RegisterServerReflectionServer(s, &serverReflectionServer{
s: s,
})