2 Star 6 Fork 5

Plato/rpc-go-backend

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
testcaller_proxy.go 3.18 KB
一键复制 编辑 原始数据 按行查看 历史
CloudGuan 提交于 2023-10-10 12:57 . !16ISSUE: async rpc call result
// Generated by the go idl tools. DO NOT EDIT 2023-01-11 04:41:10
// source: TestCaller
package example
import (
"gitee.com/dennis-kk/rpc-go-backend/idlrpc"
"gitee.com/dennis-kk/rpc-go-backend/idlrpc/example/pbdata"
"gitee.com/dennis-kk/rpc-go-backend/idlrpc/pkg/errors"
"gitee.com/dennis-kk/rpc-go-backend/idlrpc/pkg/protocol"
"gitee.com/dennis-kk/rpc-go-backend/idlrpc/pkg/transport"
"google.golang.org/protobuf/proto"
)
// TestCallerProxy define stub.ProxyStub
type TestCallerProxy struct {
idlrpc.ProxyBase
}
func TestCallerProxyCreator(trans transport.ITransport) idlrpc.IProxy {
if trans == nil {
return nil
}
if trans.IsClose() {
return nil
}
srvProxy := &TestCallerProxy{}
srvProxy.SetTransport(trans)
return srvProxy
}
// GetUUID define function
func (sp *TestCallerProxy) GetUUID() uint64 {
return SrvUUID
}
func (sp *TestCallerProxy) GetSrvName() string {
return SrvName
}
func (sp *TestCallerProxy) GetSignature(methid uint32) string {
var sign string
switch methid {
}
return sign
}
func (sp *TestCallerProxy) IsOneWay(methodid uint32) (isoneway bool) {
switch methodid {
default:
isoneway = false
}
return
}
func (sp *TestCallerProxy) SetInfo(ctx idlrpc.IServiceContext, _1 string) (err error) {
rpc := sp.GetRpc()
if rpc == nil {
//TODO add define error
return
}
pbarg := &pbdata.TestCaller_SetInfoArgs{}
pbarg.Arg1 = _1
//_, err = rpc.Call(sp, 1, 1000, 0, pbarg)
_, err = rpc.SyncCall(ctx, sp, 1, 1000, 0, pbarg)
if err != nil {
return
}
return
}
func (sp *TestCallerProxy) GetInfo(ctx idlrpc.IServiceContext) (ret1 string, err error) {
rpc := sp.GetRpc()
if rpc == nil {
//TODO add define error
return
}
pbarg := &pbdata.TestCaller_GetInfoArgs{}
//respMsg, err := rpc.Call(sp, 2, 1000, 0, pbarg)
protoData, err := rpc.SyncCall(ctx, sp, 2, 1000, 0, pbarg)
if err != nil {
return
}
//如果是oneway 的方法 不用检测返回值序列化,相当于传统的调用
pbret := &pbdata.TestCaller_GetInfoRet{}
err = proto.Unmarshal(protoData, pbret)
if err != nil {
return
}
ret1 = pbret.Ret1
return
}
// ======================= Async Function =======================
// SetInfoAsync define func
func (sp *TestCallerProxy) SetInfoAsync(ctx idlrpc.IServiceContext, _1 string, cb SetInfoCallBack) (err error) {
rpc := sp.GetRpc()
if rpc == nil {
//TODO add define error
return
}
pbarg := &pbdata.TestCaller_SetInfoArgs{}
pbarg.Arg1 = _1
callBackWrapper := func(_ []byte, errorCode uint32) {
cb(idlrpc.RpcStrError(errorCode))
}
return rpc.AsyncCall(ctx, sp, 1, 1000, 0, pbarg, callBackWrapper)
}
// GetInfoAsync define func
func (sp *TestCallerProxy) GetInfoAsync(ctx idlrpc.IServiceContext, cb GetInfoCallBack) (err error) {
rpc := sp.GetRpc()
if rpc == nil {
cb("", errors.ErrRpcNotInit)
return
}
pbarg := &pbdata.TestCaller_GetInfoArgs{}
callBackWrapper := func(protoData []byte, errorCode uint32) {
if errorCode != protocol.IDL_SUCCESS {
cb("", idlrpc.RpcStrError(errorCode))
return
}
pbret := &pbdata.TestCaller_GetInfoRet{}
err = proto.Unmarshal(protoData, pbret)
if err != nil {
cb("", err)
return
}
cb(pbret.Ret1, nil)
}
return rpc.AsyncCall(ctx, sp, 2, 1000, 0, pbarg, callBackWrapper)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dennis-kk/rpc-go-backend.git
git@gitee.com:dennis-kk/rpc-go-backend.git
dennis-kk
rpc-go-backend
rpc-go-backend
v0.5.8

搜索帮助