如何将成员函数定义为Thrift服务?

时间:2016-04-17 15:01:23

标签: 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来实现它。

我做到这一点的解决方案有点棘手:

在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;
};

在节俭中有没有简单的方法呢?

0 个答案:

没有答案