Remove filenameToDescMap, replace with proto.FileDescriptor()
This commit is contained in:
@ -23,8 +23,6 @@ type serverReflectionServer struct {
|
|||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// InstallOnServer installs server reflection service on the given grpc server.
|
// InstallOnServer installs server reflection service on the given grpc server.
|
||||||
@ -34,7 +32,6 @@ func InstallOnServer(s *grpc.Server) {
|
|||||||
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),
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,9 +73,6 @@ func (s *serverReflectionServer) decodeFileDesc(enc []byte) (*dpb.FileDescriptor
|
|||||||
if err := proto.Unmarshal(raw, fd); err != nil {
|
if err := proto.Unmarshal(raw, fd); err != nil {
|
||||||
return nil, fmt.Errorf("bad descriptor: %v", err)
|
return nil, fmt.Errorf("bad descriptor: %v", err)
|
||||||
}
|
}
|
||||||
// If decodeFileDesc is called, it's the first time this file is seen.
|
|
||||||
// Add it to cache.
|
|
||||||
s.filenameToDescMap[fd.GetName()] = fd
|
|
||||||
return fd, nil
|
return fd, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,10 +217,14 @@ func (s *serverReflectionServer) allExtensionNumbersForType(st reflect.Type) ([]
|
|||||||
// fileDescWireFormatByFilename returns the file descriptor of file with the given name.
|
// fileDescWireFormatByFilename returns the file descriptor of file with the given name.
|
||||||
// TODO exporte and add lock
|
// TODO exporte and add lock
|
||||||
func (s *serverReflectionServer) fileDescWireFormatByFilename(name string) ([]byte, error) {
|
func (s *serverReflectionServer) fileDescWireFormatByFilename(name string) ([]byte, error) {
|
||||||
fd, ok := s.filenameToDescMap[name]
|
enc := proto.FileDescriptor(name)
|
||||||
if !ok {
|
if enc == nil {
|
||||||
return nil, fmt.Errorf("unknown file: %v", name)
|
return nil, fmt.Errorf("unknown file: %v", name)
|
||||||
}
|
}
|
||||||
|
fd, err := s.decodeFileDesc(enc)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
b, err := proto.Marshal(fd)
|
b, err := proto.Marshal(fd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@ -20,7 +20,6 @@ var (
|
|||||||
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),
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user