ttg 1.0.0
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT > Class Template Reference

#include <make_tt.h>

Inherits TT< keyT, output_terminalsT, CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT... >, ttg::typelist< input_valuesT... >, space >.

Public Member Functions

template<typename funcT_ >
 CallableWrapTT (funcT_ &&f, const input_edges_type &inedges, const typename baseT::output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
 
template<typename funcT_ >
 CallableWrapTT (funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
 
template<typename Key , typename ArgsTuple >
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&!ttg::meta::is_void_v< Key >, op_return_type > op (Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)
 
template<typename ArgsTuple , typename Key = keyT>
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&ttg::meta::is_void_v< Key >, op_return_type > op (ArgsTuple &&args_tuple, output_terminalsT &out)
 
template<typename Key , typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, op_return_type > op (Key &&key, output_terminalsT &out)
 
template<typename Key = keyT, typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, op_return_type > op (output_terminalsT &out)
 

Protected Member Functions

template<typename ReturnT >
auto process_return (ReturnT &&ret, output_terminalsT &out)
 
template<typename Key , typename Tuple , std::size_t... S>
auto call_func (Key &&key, Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)
 
template<typename Tuple , std::size_t... S>
auto call_func (Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)
 
template<typename Key >
auto call_func (Key &&key, output_terminalsT &out)
 
template<typename OutputTerminals >
auto call_func (OutputTerminals &out)
 

Static Protected Member Functions

template<typename Tuple , std::size_t... I>
static auto make_output_terminal_ptrs (const Tuple &output_terminals, std::index_sequence< I... >)
 

Detailed Description

template<typename funcT, typename returnT, bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT, typename output_terminalsT, typename... input_valuesT>
class CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >

Definition at line 17 of file make_tt.h.

Constructor & Destructor Documentation

◆ CallableWrapTT() [1/2]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename funcT_ >
CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::CallableWrapTT ( funcT_ &&  f,
const input_edges_type &  inedges,
const typename baseT::output_edges_type &  outedges,
const std::string &  name,
const std::vector< std::string > &  innames,
const std::vector< std::string > &  outnames 
)
inline

Definition at line 240 of file make_tt.h.

◆ CallableWrapTT() [2/2]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename funcT_ >
CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::CallableWrapTT ( funcT_ &&  f,
const std::string &  name,
const std::vector< std::string > &  innames,
const std::vector< std::string > &  outnames 
)
inline

Definition at line 246 of file make_tt.h.

Member Function Documentation

◆ call_func() [1/4]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key >
auto CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func ( Key &&  key,
output_terminalsT &  out 
)
inlineprotected

Definition at line 168 of file make_tt.h.

Here is the call graph for this function:

◆ call_func() [2/4]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key , typename Tuple , std::size_t... S>
auto CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func ( Key &&  key,
Tuple &&  args_tuple,
output_terminalsT &  out,
std::index_sequence< S... >   
)
inlineprotected
Returns
coroutine handle<> (if funcT is a coroutine), else void

Definition at line 101 of file make_tt.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ call_func() [3/4]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename OutputTerminals >
auto CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func ( OutputTerminals &  out)
inlineprotected

Definition at line 200 of file make_tt.h.

Here is the call graph for this function:

◆ call_func() [4/4]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Tuple , std::size_t... S>
auto CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func ( Tuple &&  args_tuple,
output_terminalsT &  out,
std::index_sequence< S... >   
)
inlineprotected

Definition at line 134 of file make_tt.h.

Here is the call graph for this function:

◆ make_output_terminal_ptrs()

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Tuple , std::size_t... I>
static auto CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::make_output_terminal_ptrs ( const Tuple &  output_terminals,
std::index_sequence< I... >   
)
inlinestaticprotected

Definition at line 233 of file make_tt.h.

◆ op() [1/4]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename ArgsTuple , typename Key = keyT>
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > && !ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&ttg::meta::is_void_v< Key >, op_return_type > CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op ( ArgsTuple &&  args_tuple,
output_terminalsT &  out 
)
inline

Definition at line 264 of file make_tt.h.

Here is the call graph for this function:

◆ op() [2/4]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key , typename ArgsTuple >
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > && !ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&!ttg::meta::is_void_v< Key >, op_return_type > CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op ( Key &&  key,
ArgsTuple &&  args_tuple,
output_terminalsT &  out 
)
inline

Definition at line 254 of file make_tt.h.

Here is the call graph for this function:

◆ op() [3/4]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key , typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, op_return_type > CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op ( Key &&  key,
output_terminalsT &  out 
)
inline

Definition at line 271 of file make_tt.h.

Here is the call graph for this function:

◆ op() [4/4]

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key = keyT, typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, op_return_type > CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op ( output_terminalsT &  out)
inline

Definition at line 278 of file make_tt.h.

Here is the call graph for this function:

◆ process_return()

template<typename funcT , typename returnT , bool funcT_receives_input_tuple, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename ReturnT >
auto CallableWrapTT< funcT, returnT, funcT_receives_input_tuple, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::process_return ( ReturnT &&  ret,
output_terminalsT &  out 
)
inlineprotected

Definition at line 51 of file make_tt.h.

Here is the call graph for this function:
Here is the caller graph for this function:

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