MCPcopy
hub / github.com/grpc/grpc-go / register

Method register

server.go:781–806  ·  view source on GitHub ↗
(sd *ServiceDesc, ss any)

Source from the content-addressed store, hash-verified

779}
780
781func (s *Server) register(sd *ServiceDesc, ss any) {
782 s.mu.Lock()
783 defer s.mu.Unlock()
784 s.printf("RegisterService(%q)", sd.ServiceName)
785 if s.serve {
786 logger.Fatalf("grpc: Server.RegisterService after Server.Serve for %q", sd.ServiceName)
787 }
788 if _, ok := s.services[sd.ServiceName]; ok {
789 logger.Fatalf("grpc: Server.RegisterService found duplicate service registration for %q", sd.ServiceName)
790 }
791 info := &serviceInfo{
792 serviceImpl: ss,
793 methods: make(map[string]*MethodDesc),
794 streams: make(map[string]*StreamDesc),
795 mdata: sd.Metadata,
796 }
797 for i := range sd.Methods {
798 d := &sd.Methods[i]
799 info.methods[d.MethodName] = d
800 }
801 for i := range sd.Streams {
802 d := &sd.Streams[i]
803 info.streams[d.StreamName] = d
804 }
805 s.services[sd.ServiceName] = info
806}
807
808// MethodInfo contains the information of an RPC including its method name and type.
809type MethodInfo struct {

Callers 1

RegisterServiceMethod · 0.95

Calls 4

printfMethod · 0.95
FatalfMethod · 0.65
LockMethod · 0.45
UnlockMethod · 0.45

Tested by

no test coverage detected