summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2017-01-08 00:18:51 +0000
committerLang Hames <lhames@gmail.com>2017-01-08 00:18:51 +0000
commit184d5d720bcabf6d66e0c8d2fca0a5aeb22173d5 (patch)
treeea6763c709812f957b5b00f580d254ed8f5f2ddb /llvm
parent8fa6d8db9c877d0b2e23973d41f82707653fb7a6 (diff)
downloadbcm5719-llvm-184d5d720bcabf6d66e0c8d2fca0a5aeb22173d5.tar.gz
bcm5719-llvm-184d5d720bcabf6d66e0c8d2fca0a5aeb22173d5.zip
[Orc][RPC] Add a class-method version of addHandler to MultiThreadedRPCEndpoint.
This brings MultiThreadedRPCEndpoint's addHandler API in-line with SingleThreadedRPCEndpoint's. This will be tested in an up-coming unit-test for MultiThreadedRPCEndpoint. llvm-svn: 291376
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h b/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h
index 6e4205c9d4a..f90a69a0877 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h
@@ -1062,6 +1062,15 @@ public:
std::move(Launch));
}
+ /// Add a class-method as a handler.
+ template <typename Func, typename ClassT, typename RetT, typename... ArgTs>
+ void addHandler(ClassT &Object, RetT (ClassT::*Method)(ArgTs...),
+ LaunchPolicy Launch = LaunchPolicy()) {
+ addHandler<Func>(
+ detail::MemberFnWrapper<ClassT, RetT, ArgTs...>(Object, Method),
+ Launch);
+ }
+
/// Negotiate a function id for Func with the other end of the channel.
template <typename Func> Error negotiateFunction() {
using OrcRPCNegotiate = typename BaseClass::OrcRPCNegotiate;
OpenPOWER on IntegriCloud