| //////////////////////////////////////////////////////////////////////////////// |
| // Do not modify! |
| // Generated by rpcapi |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| package service |
| |
| import ( |
| "fmt" |
| "io" |
| "runtime/debug" |
| |
| "android.googlesource.com/platform/tools/gpu/binary" |
| "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 { |
| l.Infof("↪ %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 *callImport: |
| if res, err := server.Import(l, call.name, call.Data); err == nil { |
| return &resultImport{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetCaptures: |
| if res, err := server.GetCaptures(l); err == nil { |
| return &resultGetCaptures{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetDevices: |
| if res, err := server.GetDevices(l); err == nil { |
| return &resultGetDevices{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetState: |
| if res, err := server.GetState(l, call.capture, call.after); err == nil { |
| return &resultGetState{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetHierarchy: |
| if res, err := server.GetHierarchy(l, call.capture); err == nil { |
| return &resultGetHierarchy{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetMemoryInfo: |
| if res, err := server.GetMemoryInfo(l, call.capture, call.after, call.rng); err == nil { |
| return &resultGetMemoryInfo{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetFramebufferColor: |
| if res, err := server.GetFramebufferColor(l, call.device, call.capture, call.api, call.after, call.settings); err == nil { |
| return &resultGetFramebufferColor{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetFramebufferDepth: |
| if res, err := server.GetFramebufferDepth(l, call.device, call.capture, call.api, call.after); err == nil { |
| return &resultGetFramebufferDepth{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callGetTimingInfo: |
| if res, err := server.GetTimingInfo(l, call.device, call.capture, call.mask); err == nil { |
| return &resultGetTimingInfo{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callPrerenderFramebuffers: |
| if res, err := server.PrerenderFramebuffers(l, call.device, call.capture, call.api, call.width, call.height, call.atomIds); err == nil { |
| return &resultPrerenderFramebuffers{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callReplaceAtom: |
| if res, err := server.ReplaceAtom(l, call.capture, call.atomId, call.atomType, call.data); err == nil { |
| return &resultReplaceAtom{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveAtomStream: |
| if res, err := server.ResolveAtomStream(l, call.id); err == nil { |
| return &resultResolveAtomStream{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveBinary: |
| if res, err := server.ResolveBinary(l, call.id); err == nil { |
| return &resultResolveBinary{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveCapture: |
| if res, err := server.ResolveCapture(l, call.id); err == nil { |
| return &resultResolveCapture{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveDevice: |
| if res, err := server.ResolveDevice(l, call.id); err == nil { |
| return &resultResolveDevice{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveHierarchy: |
| if res, err := server.ResolveHierarchy(l, call.id); err == nil { |
| return &resultResolveHierarchy{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveImageInfo: |
| if res, err := server.ResolveImageInfo(l, call.id); err == nil { |
| return &resultResolveImageInfo{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveMemoryInfo: |
| if res, err := server.ResolveMemoryInfo(l, call.id); err == nil { |
| return &resultResolveMemoryInfo{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveSchema: |
| if res, err := server.ResolveSchema(l, call.id); err == nil { |
| return &resultResolveSchema{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| case *callResolveTimingInfo: |
| if res, err := server.ResolveTimingInfo(l, call.id); err == nil { |
| return &resultResolveTimingInfo{value: res} |
| } else { |
| return rpc.NewError(err.Error()) |
| } |
| default: |
| return rpc.NewError("Unexpected RPC function: %T", call) |
| } |
| }) |
| } |