| //////////////////////////////////////////////////////////////////////////////// |
| // Do not modify! |
| // Generated by codergen |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| package test |
| |
| import ( |
| "fmt" |
| "io" |
| |
| "android.googlesource.com/platform/tools/gpu/framework/binary" |
| "android.googlesource.com/platform/tools/gpu/framework/log" |
| "android.googlesource.com/platform/tools/gpu/framework/rpc" |
| ) |
| |
| // Server is the server interface for service calls. |
| type Server interface { |
| // Server exposes all the service interface methods. |
| RPC |
| } |
| |
| // BindServer starts a service on the stream s, delegating all RPC calls on to server. |
| func BindServer(ctx log.Context, s io.ReadWriteCloser, mtu int, server Server) { |
| rpc.Serve(ctx, s, mtu, Handler(server)) |
| } |
| |
| // Handler returns an rpc.Handler wrapping the given server. |
| func Handler(server Server) rpc.Handler { |
| return func(ctx log.Context, in interface{}) (res binary.Object, err error) { |
| ty := fmt.Sprintf("%T", in) |
| ctx = ctx.Enter(ty) |
| defer func() { |
| if r := recover(); r == nil { |
| if err != nil { |
| ctx.Tag("rpc").LogError(err) |
| } |
| } else { |
| var ok bool |
| if err, ok = r.(error); !ok { |
| err = fmt.Errorf("%v", r) |
| } |
| ctx.Fail(err, "") |
| err = &rpc.ErrPanic{Msg: err.Error()} |
| } |
| }() |
| switch call := in.(type) { |
| case *callAdd: |
| res, err := server.Add(ctx, call.a, call.b); |
| if err != nil { |
| return nil, err |
| } |
| return &resultAdd{value: res}, nil |
| case *callEnumToString: |
| res, err := server.EnumToString(ctx, call.e); |
| if err != nil { |
| return nil, err |
| } |
| return &resultEnumToString{value: res}, nil |
| case *callGetListNodeChain: |
| res, err := server.GetListNodeChain(ctx); |
| if err != nil { |
| return nil, err |
| } |
| return &resultGetListNodeChain{value: res}, nil |
| case *callGetListNodeChainArray: |
| res, err := server.GetListNodeChainArray(ctx); |
| if err != nil { |
| return nil, err |
| } |
| return &resultGetListNodeChainArray{value: res}, nil |
| case *callGetResource: |
| res, err := server.GetResource(ctx); |
| if err != nil { |
| return nil, err |
| } |
| return &resultGetResource{value: res}, nil |
| case *callGetSingleListNode: |
| res, err := server.GetSingleListNode(ctx); |
| if err != nil { |
| return nil, err |
| } |
| return &resultGetSingleListNode{value: res}, nil |
| case *callGetStruct: |
| res, err := server.GetStruct(ctx); |
| if err != nil { |
| return nil, err |
| } |
| return &resultGetStruct{value: res}, nil |
| case *callResolveResource: |
| res, err := server.ResolveResource(ctx, call.r); |
| if err != nil { |
| return nil, err |
| } |
| return &resultResolveResource{value: res}, nil |
| case *callSetStruct: |
| err := server.SetStruct(ctx, call.s); |
| if err != nil { |
| return nil, err |
| } |
| return &resultSetStruct{}, nil |
| case *callUseResource: |
| err := server.UseResource(ctx, call.r); |
| if err != nil { |
| return nil, err |
| } |
| return &resultUseResource{}, nil |
| default: |
| return nil, &rpc.ErrUnknownFunction{Function: ty} |
| } |
| } |
| } |