blob: e092aa83b57ac4017a59a166e77a0c7804e85e38 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
// 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)
}
})
}