// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT. package service import ( tls "crypto/tls" gob "encoding/gob" fmt "fmt" reflect "reflect" strings "strings" time "time" gotsrpc "github.com/foomo/gotsrpc/v2" gorpc "github.com/valyala/gorpc" ) type ( ServiceGoRPCProxy struct { server *gorpc.Server service Service callStatsHandler gotsrpc.GoRPCCallStatsHandlerFun } ServiceTimeRequest struct { V time.Time } ServiceTimeResponse struct { RetTime_0 time.Time } ServiceTimeStructRequest struct { V TimeStruct } ServiceTimeStructResponse struct { RetTimeStruct_0 TimeStruct } ) func init() { gob.Register(ServiceTimeRequest{}) gob.Register(ServiceTimeResponse{}) gob.Register(ServiceTimeStructRequest{}) gob.Register(ServiceTimeStructResponse{}) } func NewServiceGoRPCProxy(addr string, service Service, tlsConfig *tls.Config) *ServiceGoRPCProxy { proxy := &ServiceGoRPCProxy{ service: service, } if tlsConfig != nil { proxy.server = gorpc.NewTLSServer(addr, proxy.handler, tlsConfig) } else { proxy.server = gorpc.NewTCPServer(addr, proxy.handler) } return proxy } func (p *ServiceGoRPCProxy) Start() error { return p.server.Start() } func (p *ServiceGoRPCProxy) Serve() error { return p.server.Serve() } func (p *ServiceGoRPCProxy) Stop() { p.server.Stop() } func (p *ServiceGoRPCProxy) SetCallStatsHandler(handler gotsrpc.GoRPCCallStatsHandlerFun) { p.callStatsHandler = handler } func (p *ServiceGoRPCProxy) handler(clientAddr string, request interface{}) (response interface{}) { start := time.Now() reqType := reflect.TypeOf(request).String() funcNameParts := strings.Split(reqType, ".") funcName := funcNameParts[len(funcNameParts)-1] switch funcName { case "ServiceTimeRequest": req := request.(ServiceTimeRequest) retTime_0 := p.service.Time(req.V) response = ServiceTimeResponse{RetTime_0: retTime_0} case "ServiceTimeStructRequest": req := request.(ServiceTimeStructRequest) retTimeStruct_0 := p.service.TimeStruct(req.V) response = ServiceTimeStructResponse{RetTimeStruct_0: retTimeStruct_0} default: fmt.Println("Unknown request type", reflect.TypeOf(request).String()) } if p.callStatsHandler != nil { p.callStatsHandler(&gotsrpc.CallStats{ Func: funcName, Package: "github.com/foomo/gotsrpc/v2/example/time/service", Service: "Service", Execution: time.Since(start), }) } return }