| //////////////////////////////////////////////////////////////////////////////// |
| // Do not modify! |
| // Generated by rpcapi |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| package test |
| |
| import ( |
| "fmt" |
| "io" |
| "runtime/debug" |
| |
| "android.googlesource.com/platform/tools/gpu/binary" |
| "android.googlesource.com/platform/tools/gpu/config" |
| "android.googlesource.com/platform/tools/gpu/log" |
| "android.googlesource.com/platform/tools/gpu/rpc" |
| ) |
| |
| func BindServer(r io.Reader, w io.Writer, mtu int, l log.Logger, server RPC) { |
| rpc.Serve(l, r, w, mtu, func(in interface{}) (res binary.Object) { |
| l := l.Fork().Enter(fmt.Sprintf("%v", in)) |
| defer func() { |
| if err := recover(); err == nil { |
| if config.DebugRPCCalls { |
| l.Infof("returned: %v", res) |
| } |
| } else { |
| msg := fmt.Sprintf("Panic: %v\n%v", err, string(debug.Stack())) |
| l.Errorf(msg) |
| res = rpc.NewError(msg) |
| } |
| }() |
| switch call := in.(type) { |
| case *callAdd: |
| if res, err := server.Add(l, call.a, call.b); err == nil { |
| return &resultAdd{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callEnumToString: |
| if res, err := server.EnumToString(l, call.e); err == nil { |
| return &resultEnumToString{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetStruct: |
| if res, err := server.GetStruct(l); err == nil { |
| return &resultGetStruct{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callSetStruct: |
| if err := server.SetStruct(l, call.s); err == nil { |
| return &resultSetStruct{} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetResource: |
| if res, err := server.GetResource(l); err == nil { |
| return &resultGetResource{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callUseResource: |
| if err := server.UseResource(l, call.r); err == nil { |
| return &resultUseResource{} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveResource: |
| if res, err := server.ResolveResource(l, call.r); err == nil { |
| return &resultResolveResource{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetSingleListNode: |
| if res, err := server.GetSingleListNode(l); err == nil { |
| return &resultGetSingleListNode{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetListNodeChain: |
| if res, err := server.GetListNodeChain(l); err == nil { |
| return &resultGetListNodeChain{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetListNodeChainArray: |
| if res, err := server.GetListNodeChainArray(l); err == nil { |
| return &resultGetListNodeChainArray{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetBase: |
| if res, err := server.GetBase(l); err == nil { |
| return &resultGetBase{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetDerived: |
| if res, err := server.GetDerived(l); err == nil { |
| return &resultGetDerived{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| default: |
| return rpc.NewError("Unexpected RPC function: %T", call) |
| } |
| }) |
| } |