github.com/s7techlab/cckit@v0.10.5/gateway/service_def.go (about)

     1  package gateway
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/grpc-ecosystem/grpc-gateway/runtime"
     7  	"google.golang.org/grpc"
     8  )
     9  
    10  type (
    11  	RegisterHandlerFromEndpoint func(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)
    12  
    13  	ServiceDef struct {
    14  		name                        string
    15  		swagger                     []byte
    16  		Desc                        *grpc.ServiceDesc
    17  		Service                     interface{}
    18  		HandlerFromEndpointRegister RegisterHandlerFromEndpoint
    19  	}
    20  
    21  	Service interface {
    22  		Name() string
    23  		Swagger() []byte
    24  		GRPCDesc() *grpc.ServiceDesc
    25  		Impl() interface{}
    26  		GRPCGatewayRegister() func(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)
    27  	}
    28  )
    29  
    30  func NewServiceDef(name string, swagger []byte, desc *grpc.ServiceDesc, service interface{}, registerHandler RegisterHandlerFromEndpoint) ServiceDef {
    31  	return ServiceDef{
    32  		name:                        name,
    33  		swagger:                     swagger,
    34  		Desc:                        desc,
    35  		Service:                     service,
    36  		HandlerFromEndpointRegister: registerHandler,
    37  	}
    38  }
    39  
    40  func (s ServiceDef) Name() string {
    41  	return s.name
    42  }
    43  
    44  func (s ServiceDef) Swagger() []byte {
    45  	return s.swagger
    46  }
    47  
    48  func (s ServiceDef) GRPCDesc() *grpc.ServiceDesc {
    49  	return s.Desc
    50  }
    51  
    52  func (s ServiceDef) Impl() interface{} {
    53  	return s.Service
    54  }
    55  
    56  func (s ServiceDef) GRPCGatewayRegister() func(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
    57  	return s.HandlerFromEndpointRegister
    58  }