Change package name and add InstallOnServer()
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
package main
|
package reflection
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
@ -17,21 +17,25 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type serverReflectionServer struct {
|
type serverReflectionServer struct {
|
||||||
|
s *grpc.Server
|
||||||
// TODO mu is not used. Add lock() and unlock().
|
// TODO mu is not used. Add lock() and unlock().
|
||||||
mu sync.Mutex
|
mu sync.Mutex
|
||||||
typeToNameMap map[reflect.Type]string
|
typeToNameMap map[reflect.Type]string
|
||||||
nameToTypeMap map[string]reflect.Type
|
nameToTypeMap map[string]reflect.Type
|
||||||
typeToFileDescMap map[reflect.Type]*dpb.FileDescriptorProto
|
typeToFileDescMap map[reflect.Type]*dpb.FileDescriptorProto
|
||||||
|
// TODO remove this, replace with s.ftdmap
|
||||||
filenameToDescMap map[string]*dpb.FileDescriptorProto
|
filenameToDescMap map[string]*dpb.FileDescriptorProto
|
||||||
}
|
}
|
||||||
|
|
||||||
func newServerReflectionServer() *serverReflectionServer {
|
// InstallOnServer installs server reflection service on the given grpc server.
|
||||||
return &serverReflectionServer{
|
func InstallOnServer(s *grpc.Server) {
|
||||||
|
rpb.RegisterServerReflectionServer(s, &serverReflectionServer{
|
||||||
|
s: s,
|
||||||
typeToNameMap: make(map[reflect.Type]string),
|
typeToNameMap: make(map[reflect.Type]string),
|
||||||
nameToTypeMap: make(map[string]reflect.Type),
|
nameToTypeMap: make(map[string]reflect.Type),
|
||||||
typeToFileDescMap: make(map[reflect.Type]*dpb.FileDescriptorProto),
|
typeToFileDescMap: make(map[reflect.Type]*dpb.FileDescriptorProto),
|
||||||
filenameToDescMap: make(map[string]*dpb.FileDescriptorProto),
|
filenameToDescMap: make(map[string]*dpb.FileDescriptorProto),
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
type protoMessage interface {
|
type protoMessage interface {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package main
|
package reflection
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"reflect"
|
"reflect"
|
||||||
@ -6,11 +6,18 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
|
dpb "github.com/golang/protobuf/protoc-gen-go/descriptor"
|
||||||
pb "google.golang.org/grpc/reflection/grpc_testing"
|
pb "google.golang.org/grpc/reflection/grpc_testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
s = newServerReflectionServer()
|
s = &serverReflectionServer{
|
||||||
|
// s: s,
|
||||||
|
typeToNameMap: make(map[reflect.Type]string),
|
||||||
|
nameToTypeMap: make(map[string]reflect.Type),
|
||||||
|
typeToFileDescMap: make(map[reflect.Type]*dpb.FileDescriptorProto),
|
||||||
|
filenameToDescMap: make(map[string]*dpb.FileDescriptorProto),
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO TestFileDescForType(t *testing.T)
|
// TODO TestFileDescForType(t *testing.T)
|
||||||
|
|||||||
Reference in New Issue
Block a user