|
CIRCT 23.0.0git
|
#include <TypedPorts.h>

Public Member Functions | |
| TypedFunction (services::FuncService::Function *func) | |
| Implicit conversion from Function* (returned by getAs<>()). | |
| TypedFunction (const TypedFunction &)=delete | |
| TypedFunction & | operator= (const TypedFunction &)=delete |
| void | connect () |
| std::future< ResultT > | call (const ArgT &arg) |
| template<typename First , typename... Rest, typename = std::enable_if_t< std::is_constructible_v<ArgT, First, Rest...> && (!std::is_same_v<std::decay_t<First>, ArgT> || sizeof...(Rest) != 0)>> | |
| std::future< ResultT > | call (First &&first, Rest &&...rest) |
Emplace-style call: constructs ArgT in-place from the forwarded arguments and forwards to call(const ArgT &). | |
| template<typename... Args> | |
| auto | operator() (Args &&...args) -> decltype(this->call(std::forward< Args >(args)...)) |
Function-call operator overloads: forward to call(). | |
| services::FuncService::Function & | raw () |
| const services::FuncService::Function & | raw () const |
Private Attributes | |
| services::FuncService::Function * | inner |
| std::optional< TypedWritePort< ArgT, SkipTypeCheck > > | argPort |
| std::optional< TypedReadPort< ResultT, SkipTypeCheck > > | resultPort |
| std::mutex | callMutex |
Definition at line 1016 of file TypedPorts.h.
|
inline |
Implicit conversion from Function* (returned by getAs<>()).
Definition at line 1020 of file TypedPorts.h.
|
delete |
|
inline |
Definition at line 1036 of file TypedPorts.h.
References esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::argPort, esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::callMutex, esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::resultPort, and esi::detail::throwNotConnected().
Referenced by esiaccel.types.FunctionPort::__call__(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::call(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::call(), esi::TypedFunction< void, ResultT, SkipTypeCheck >::operator()(), esi::TypedFunction< void, void, SkipTypeCheck >::operator()(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::operator()(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::operator()(), runOddStructFunc(), runSInt4Loopback(), and runStructFunc().
|
inline |
Emplace-style call: constructs ArgT in-place from the forwarded arguments and forwards to call(const ArgT &).
SFINAE-disabled for the single-ArgT-argument case so it does not shadow the lvalue overload.
Definition at line 1057 of file TypedPorts.h.
References esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::call().
Referenced by esiaccel.types.FunctionPort::__call__().
|
inline |
Definition at line 1024 of file TypedPorts.h.
References esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::argPort, esi::BundlePort::getRawRead(), esi::BundlePort::getRawWrite(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::inner, esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::resultPort, esi::detail::throwAlreadyConnected(), esi::detail::throwNullFunction(), and esi::detail::typedFunctionConnectOptions().
Referenced by runOddStructFunc(), runSInt4Loopback(), and runStructFunc().
|
inline |
Function-call operator overloads: forward to call().
Definition at line 1063 of file TypedPorts.h.
References esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::call().
|
delete |
|
inline |
Definition at line 1068 of file TypedPorts.h.
References esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::inner.
|
inline |
Definition at line 1069 of file TypedPorts.h.
References esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::inner.
|
private |
Definition at line 1073 of file TypedPorts.h.
Referenced by esi::TypedFunction< void, ResultT, SkipTypeCheck >::call(), esi::TypedFunction< void, void, SkipTypeCheck >::call(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::call(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::call(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::connect(), esi::TypedFunction< void, ResultT, SkipTypeCheck >::connect(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::connect(), and esi::TypedFunction< void, void, SkipTypeCheck >::connect().
|
private |
|
private |
Definition at line 1072 of file TypedPorts.h.
Referenced by esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::connect(), esi::TypedFunction< void, ResultT, SkipTypeCheck >::connect(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::connect(), esi::TypedFunction< void, void, SkipTypeCheck >::connect(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::raw(), esi::TypedFunction< void, ResultT, SkipTypeCheck >::raw(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::raw(), esi::TypedFunction< void, void, SkipTypeCheck >::raw(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::raw(), esi::TypedFunction< void, ResultT, SkipTypeCheck >::raw(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::raw(), and esi::TypedFunction< void, void, SkipTypeCheck >::raw().
|
private |
Definition at line 1074 of file TypedPorts.h.
Referenced by esi::TypedFunction< void, ResultT, SkipTypeCheck >::call(), esi::TypedFunction< void, void, SkipTypeCheck >::call(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::call(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::call(), esi::TypedFunction< ArgT, ResultT, SkipTypeCheck >::connect(), esi::TypedFunction< void, ResultT, SkipTypeCheck >::connect(), esi::TypedFunction< ArgT, void, SkipTypeCheck >::connect(), and esi::TypedFunction< void, void, SkipTypeCheck >::connect().