ttg 1.0.0
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Friends | List of all members
ttg::TerminalBase Class Referenceabstract

#include <terminal.h>

Inheritance diagram for ttg::TerminalBase:
[legend]

Public Types

enum class  Type { Write , Read , Consume }
 describes the terminal type More...
 

Public Member Functions

TTBaseget_tt () const
 Return ptr to containing tt.
 
size_t get_index () const
 Returns index of terminal.
 
const std::string & get_name () const
 Returns name of terminal.
 
const std::string & get_key_type_str () const
 Returns string representation of key type.
 
const std::string & get_value_type_str () const
 Returns string representation of value type.
 
Type get_type () const
 Returns the terminal type.
 
const std::vector< TerminalBase * > & get_connections () const
 Get connections to successors.
 
const std::vector< TerminalBase * > & get_predecessors () const
 
void connect_pull_nopred (TerminalBase *p)
 
bool is_connected () const
 Returns true if this terminal (input or output) is connected.
 
virtual void connect (TerminalBase *in)=0
 
virtual ~TerminalBase ()=default
 

Public Attributes

bool is_pull_terminal = false
 

Static Public Attributes

static constexpr bool is_a_terminal = true
 

Protected Member Functions

 TerminalBase (Type type)
 
void set (TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)
 
void connect_base (TerminalBase *successor)
 
void connect_pull (TerminalBase *predecessor)
 

Friends

class TTBase
 
template<typename keyT , typename valueT >
class In
 
template<typename keyT , typename valueT >
class Out
 

Detailed Description

Provides basic information and graph connectivity (eventually statistics, etc.)

Definition at line 13 of file terminal.h.

Member Enumeration Documentation

◆ Type

enum class ttg::TerminalBase::Type
strong

describes the terminal type

Enumerator
Write 

can only be written to

Read 

can only be used to read immutable data

Consume 

can only be used to read consumable data

Definition at line 19 of file terminal.h.

Constructor & Destructor Documentation

◆ TerminalBase()

ttg::TerminalBase::TerminalBase ( Type  type)
inlineprotected

Definition at line 47 of file terminal.h.

◆ ~TerminalBase()

virtual ttg::TerminalBase::~TerminalBase ( )
virtualdefault

Member Function Documentation

◆ connect()

virtual void ttg::TerminalBase::connect ( TerminalBase in)
pure virtual

Connect this (a TTG output terminal) to a TTG input terminal. The base class method forwards to the the derived class connect method and so type checking for the key/value will be done at runtime when performing the dynamic down cast from TerminalBase* to In<keyT,valueT>.

Implemented in ttg::Out< keyT, valueT >, and ttg::Out< keyT, valueT >.

Here is the caller graph for this function:

◆ connect_base()

void ttg::TerminalBase::connect_base ( TerminalBase successor)
inlineprotected

Add directed connection (this --> successor) in internal representation of the TTG. This is called by the derived class's connect method

Definition at line 61 of file terminal.h.

Here is the caller graph for this function:

◆ connect_pull()

void ttg::TerminalBase::connect_pull ( TerminalBase predecessor)
inlineprotected

Definition at line 67 of file terminal.h.

Here is the caller graph for this function:

◆ connect_pull_nopred()

void ttg::TerminalBase::connect_pull_nopred ( TerminalBase p)
inline

Definition at line 114 of file terminal.h.

◆ get_connections()

const std::vector< TerminalBase * > & ttg::TerminalBase::get_connections ( ) const
inline

Get connections to successors.

Definition at line 108 of file terminal.h.

Here is the caller graph for this function:

◆ get_index()

size_t ttg::TerminalBase::get_index ( ) const
inline

Returns index of terminal.

Definition at line 81 of file terminal.h.

◆ get_key_type_str()

const std::string & ttg::TerminalBase::get_key_type_str ( ) const
inline

Returns string representation of key type.

Definition at line 93 of file terminal.h.

◆ get_name()

const std::string & ttg::TerminalBase::get_name ( ) const
inline

Returns name of terminal.

Definition at line 87 of file terminal.h.

Here is the caller graph for this function:

◆ get_predecessors()

const std::vector< TerminalBase * > & ttg::TerminalBase::get_predecessors ( ) const
inline

Definition at line 110 of file terminal.h.

◆ get_tt()

TTBase * ttg::TerminalBase::get_tt ( ) const
inline

Return ptr to containing tt.

Definition at line 75 of file terminal.h.

◆ get_type()

Type ttg::TerminalBase::get_type ( ) const
inline

Returns the terminal type.

Definition at line 105 of file terminal.h.

Here is the caller graph for this function:

◆ get_value_type_str()

const std::string & ttg::TerminalBase::get_value_type_str ( ) const
inline

Returns string representation of value type.

Definition at line 99 of file terminal.h.

◆ is_connected()

bool ttg::TerminalBase::is_connected ( ) const
inline

Returns true if this terminal (input or output) is connected.

Definition at line 119 of file terminal.h.

◆ set()

void ttg::TerminalBase::set ( TTBase tt,
size_t  index,
const std::string &  name,
const std::string &  key_type_str,
const std::string &  value_type_str,
Type  type 
)
inlineprotected

Definition at line 49 of file terminal.h.

Friends And Related Symbol Documentation

◆ In

template<typename keyT , typename valueT >
friend class In
friend

Definition at line 42 of file terminal.h.

◆ Out

template<typename keyT , typename valueT >
friend class Out
friend

Definition at line 44 of file terminal.h.

◆ TTBase

friend class TTBase
friend

Definition at line 40 of file terminal.h.

Member Data Documentation

◆ is_a_terminal

constexpr bool ttg::TerminalBase::is_a_terminal = true
staticconstexpr

Definition at line 15 of file terminal.h.

◆ is_pull_terminal

bool ttg::TerminalBase::is_pull_terminal = false

Definition at line 16 of file terminal.h.


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