我想使用FuncType
作为foo
函数的参数类型。节俭支持这个吗?如何在FuncType
中定义类型?
struct FuncType {
// std::function<std::vector<std::pair<int, int>>(const std::string &)>;
// how to define here?
}
service WorkerService {
bool foo(1:FuncType func)
}
答案 0 :(得分:1)
Apache Thrift旨在允许在不同平台和环境之间进行RPC调用 。因此,不能传递像std::function<int(int)>
这样的东西:如何将C ++中定义的本机函数转移到JavaScript,反之亦然?
(顺便说一下:即使在某种程度上可能,但是出于安全原因,允许服务器用户向ii注入一些代码通常是个坏主意。)
如果您想要具有多个处理选项的单个函数 - 创建一些枚举并将其传递给该函数。更好 - 在您的服务中定义多个功能。如果您想真正允许用户逐个样本处理:要么将所有样本返回给用户并在客户端中相应地处理它,要么,如果有太多数据要一次通过网络传递,请提供&#34; iterator&# 34;服务:
struct MyPair {
i32 first;
i32 second;
}
typedef i32 QueryId;
service MyService {
QueryId startProcessing();
MyPair getNextSample(1: QueryId id);
}