blob: a98dd99a02f42a70097c0261383326836647547b [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
// Do not modify!
// Generated by codergen
////////////////////////////////////////////////////////////////////////////////
package service
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, c io.Closer, mtu int, l log.Logger, server Service) {
rpc.Serve(r, w, c, mtu, l, func(in interface{}) (res binary.Object) {
l := log.Enter(log.Fork(l), fmt.Sprintf("%T", in))
defer func() {
if err := recover(); err == nil {
if config.DebugRPCCalls {
log.Infof(l, "returned: %v", res)
}
} else {
msg := fmt.Sprintf("Panic: %v\n%v", err, string(debug.Stack()))
log.Errorf(l, msg)
res = rpc.NewError(msg)
}
}()
switch call := in.(type) {
case *callFollow:
if res, err := server.Follow(call.p, l); err == nil {
return &resultFollow{value: res}
} else {
return rpc.NewError(err.Error())
}
case *callGet:
if res, err := server.Get(call.p, l); err == nil {
return &resultGet{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 *callGetFramebufferColor:
if res, err := server.GetFramebufferColor(call.device, call.after, call.settings, l); err == nil {
return &resultGetFramebufferColor{value: res}
} else {
return rpc.NewError(err.Error())
}
case *callGetFramebufferDepth:
if res, err := server.GetFramebufferDepth(call.device, call.after, l); err == nil {
return &resultGetFramebufferDepth{value: res}
} else {
return rpc.NewError(err.Error())
}
case *callGetSchema:
if res, err := server.GetSchema(l); err == nil {
return &resultGetSchema{value: res}
} else {
return rpc.NewError(err.Error())
}
case *callGetTimingInfo:
if res, err := server.GetTimingInfo(call.device, call.capture, call.flags, l); err == nil {
return &resultGetTimingInfo{value: res}
} else {
return rpc.NewError(err.Error())
}
case *callImportCapture:
if res, err := server.ImportCapture(call.name, call.Data, l); err == nil {
return &resultImportCapture{value: res}
} else {
return rpc.NewError(err.Error())
}
case *callPrerenderFramebuffers:
if err := server.PrerenderFramebuffers(call.device, call.capture, call.api, call.width, call.height, call.atomIndicies, l); err == nil {
return &resultPrerenderFramebuffers{}
} else {
return rpc.NewError(err.Error())
}
case *callSet:
if res, err := server.Set(call.p, call.v, l); err == nil {
return &resultSet{value: res}
} else {
return rpc.NewError(err.Error())
}
default:
return rpc.NewError("Unexpected Service function: %T", call)
}
})
}