C++ 如何将会员功能定义为储蓄服务?
我想使用RPC调用类对象的成员函数 例如:C++ 如何将会员功能定义为储蓄服务?,c++,c++11,rpc,thrift,C++,C++11,Rpc,Thrift,我想使用RPC调用类对象的成员函数 例如: class A { public: int foo(int a, int b) { return a + b; } }; 客户端希望远程调用A::foo,在这种情况下,如何定义thrift文件?由于GO RPC可以很容易地完成这一操作,所以我想知道如何在C++中节约使用。 我的解决方案有点棘手: 在thrift文件中定义原始函数类型,如下所示,它看起来像是成员函数a::foo的包装器: service XXX { i64 div(1:i6
class A {
public:
int foo(int a, int b) { return a + b; }
};
客户端希望远程调用A::foo,在这种情况下,如何定义thrift文件?由于GO RPC可以很容易地完成这一操作,所以我想知道如何在C++中节约使用。
我的解决方案有点棘手: 在thrift文件中定义原始函数类型,如下所示,它看起来像是成员函数
a::foo的包装器:
service XXX {
i64 div(1:i64 a, 2:i64 b)
}
在服务器代码中:
class XXXhandler : XXXIf {
public:
int div(int a, int b) {
return obj.foo(a, b);
}
private:
A obj;
};
有什么简单的方法可以在节俭中做到这一点吗?因此,您希望服务器在请求某些服务时创建一个A
,然后在收到请求时对其调用一个方法foo
?你能更改A
吗?还是超出了你的知识范围?(即,使其成为服务本身)您编写了1行来公开a
,1行来公开a::foo
,一行来实现公开a
,1行来分配公开序列中的a
,以及1行来转发该方法。除了反射,它会变得简单多少?@Yakk这只是一个简单的例子,我只想在客户端调用服务器端的成员函数。是的,这是我所说的重复。一个<代码>服务器<代码>是一个对象类型/实例,一个函数是一个方法,而代码将C++与节俭接口对齐。再说一次,你认为什么更简单?我猜我只是误解了这个问题。雅克是对的,它不会变得更简单。