C++ 如何将会员功能定义为储蓄服务?

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

我想使用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: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++与节俭接口对齐。再说一次,你认为什么更简单?我猜我只是误解了这个问题。雅克是对的,它不会变得更简单。