blob: 0fa771b3b7ce058ec404ead680acc2d37d302ccd [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
// Do not modify!
// Generated by codergen
////////////////////////////////////////////////////////////////////////////////
package service
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.
Debug
Service
}
// 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 *callBeginCPUProfile:
err := server.BeginCPUProfile(ctx);
if err != nil {
return nil, err
}
return &resultBeginCPUProfile{}, nil
case *callEndCPUProfile:
res, err := server.EndCPUProfile(ctx);
if err != nil {
return nil, err
}
return &resultEndCPUProfile{value: res}, nil
case *callGetMemProfileRate:
res, err := server.GetMemProfileRate(ctx);
if err != nil {
return nil, err
}
return &resultGetMemProfileRate{value: res}, nil
case *callGetPerformanceCounters:
res, err := server.GetPerformanceCounters(ctx);
if err != nil {
return nil, err
}
return &resultGetPerformanceCounters{value: res}, nil
case *callGetProfile:
res, err := server.GetProfile(ctx, call.name, call.debug);
if err != nil {
return nil, err
}
return &resultGetProfile{value: res}, nil
case *callSetMemProfileRate:
err := server.SetMemProfileRate(ctx, call.rate);
if err != nil {
return nil, err
}
return &resultSetMemProfileRate{}, nil
case *callFollow:
res, err := server.Follow(ctx, call.p);
if err != nil {
return nil, err
}
return &resultFollow{value: res}, nil
case *callGet:
res, err := server.Get(ctx, call.p);
if err != nil {
return nil, err
}
return &resultGet{value: res}, nil
case *callGetAvailableStringTables:
res, err := server.GetAvailableStringTables(ctx);
if err != nil {
return nil, err
}
return &resultGetAvailableStringTables{value: res}, nil
case *callGetCaptures:
res, err := server.GetCaptures(ctx);
if err != nil {
return nil, err
}
return &resultGetCaptures{value: res}, nil
case *callGetDevices:
res, err := server.GetDevices(ctx);
if err != nil {
return nil, err
}
return &resultGetDevices{value: res}, nil
case *callGetFeatures:
res, err := server.GetFeatures(ctx);
if err != nil {
return nil, err
}
return &resultGetFeatures{value: res}, nil
case *callGetFramebufferAttachment:
res, err := server.GetFramebufferAttachment(ctx, call.device, call.after, call.attachment, call.settings);
if err != nil {
return nil, err
}
return &resultGetFramebufferAttachment{value: res}, nil
case *callGetFramebufferColor:
res, err := server.GetFramebufferColor(ctx, call.device, call.after, call.settings);
if err != nil {
return nil, err
}
return &resultGetFramebufferColor{value: res}, nil
case *callGetFramebufferDepth:
res, err := server.GetFramebufferDepth(ctx, call.device, call.after);
if err != nil {
return nil, err
}
return &resultGetFramebufferDepth{value: res}, nil
case *callGetSchema:
res, err := server.GetSchema(ctx);
if err != nil {
return nil, err
}
return &resultGetSchema{value: res}, nil
case *callGetStringTable:
res, err := server.GetStringTable(ctx, call.info);
if err != nil {
return nil, err
}
return &resultGetStringTable{value: res}, nil
case *callGetTimingInfo:
res, err := server.GetTimingInfo(ctx, call.device, call.capture, call.flags);
if err != nil {
return nil, err
}
return &resultGetTimingInfo{value: res}, nil
case *callImportCapture:
res, err := server.ImportCapture(ctx, call.name, call.Data);
if err != nil {
return nil, err
}
return &resultImportCapture{value: res}, nil
case *callLoadCapture:
res, err := server.LoadCapture(ctx, call.path);
if err != nil {
return nil, err
}
return &resultLoadCapture{value: res}, nil
case *callRegisterAndroidDevice:
res, err := server.RegisterAndroidDevice(ctx, call.serial);
if err != nil {
return nil, err
}
return &resultRegisterAndroidDevice{value: res}, nil
case *callSet:
res, err := server.Set(ctx, call.p, call.v);
if err != nil {
return nil, err
}
return &resultSet{value: res}, nil
default:
return nil, &rpc.ErrUnknownFunction{Function: ty}
}
}
}