LLVM 24.0.0git
llvm::orc::rt::sps::Caller< BaseT, SPSSigT, CINameV, FnType > Class Template Reference

Implements the rt::Caller interface BaseT by calling an executor-side SPS wrapper function, using SPSSigT to encode the arguments and decode the result. More...

Inheritance diagram for llvm::orc::rt::sps::Caller< BaseT, SPSSigT, CINameV, FnType >:
[legend]

Detailed Description

template<typename BaseT, typename SPSSigT, const char * CINameV, typename FnType = typename BaseT::FnType>
class llvm::orc::rt::sps::Caller< BaseT, SPSSigT, CINameV, FnType >

Implements the rt::Caller interface BaseT by calling an executor-side SPS wrapper function, using SPSSigT to encode the arguments and decode the result.

The wrapper is a controller-interface (CI) entry point named CIName: a wrapper function (byte blob in, byte blob out) that the runtime exposes to the controller. SPSSigT is the Simple Packed Serialization signature used to encode the argument blob and decode the result blob; it must be compatible with BaseT's FnType. CIName must have static storage duration (e.g. an inline constexpr char[]).

The FnType parameter is deduced from BaseT and should not be supplied explicitly; the primary template is left undefined so that only the RetT(ArgTs...) specialization can be instantiated.

Definition at line 42 of file Calls.h.


The documentation for this class was generated from the following file: