Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
hh::tool Namespace Reference

Hedgehog tool namespace. More...

Namespaces

namespace  internals
 Hedgehog tool internals namespace.
 

Classes

class  Pool
 Pool of data used by the memory manager. More...
 
struct  PrintOptions
 Node print options. More...
 

Concepts

concept  ContainsConcept
 Concept verifying that a type is in a variadic.
 
concept  ContainsInTupleConcept
 Concept verifying that a type is in a tuple.
 
concept  MatchInputTypeConcept
 Test if an input type is in the list of input types (tuple)
 
concept  MatchOutputTypeConcept
 Test if an output type is in the list of output types (variadic)
 
concept  MultiSendersAndNotifierAbstractionConcept
 Test if a type inherit from core::abstraction::SenderAbstraction for all Os and core::abstraction::NotifierAbstraction.
 
concept  ManageableMemory
 Test if a type T is manageable in a Memory manager (derives from ManagedMemory and is default constructible)
 
concept  CompatibleInputCore
 Test if a core can be input of a graph (derives from core::abstraction::NodeAbstraction and shares at least one input type with the graph)
 
concept  CompatibleInputCoreForAType
 Test if a core can be input of a graph for a type (derives from core::abstraction::NodeAbstraction and type InputType is in the tuples of the core and graph input types)
 
concept  CompatibleOutputCore
 Test if a core can be output of a graph (derives from core::abstraction::NodeAbstraction and shares at least one output type with the graph)
 
concept  CompatibleOutputCoreForAType
 Test if a core can be output of a graph for a type (derives from core::abstraction::NodeAbstraction and type OutputType is in the tuples of the core and graph output types)
 
concept  SenderNode
 Test if a node is a sender node.
 
concept  ReceiverNode
 Test if a node is a receiver node.
 
concept  SenderNodeForAType
 Test if a node is a sender for a type.
 
concept  ReceiverNodeForAType
 Test if a node is a receiver for a type.
 
concept  CompatibleInputNode
 Test if a node can be input of a graph.
 
concept  CompatibleInputNodeForAType
 Test if a node can be input of a graph for a type.
 
concept  CompatibleOutputNode
 Test if a node can be output of a graph.
 
concept  CompatibleOutputNodeForAType
 Test if a node can be output of a graph for a type.
 
concept  CopyableNode
 Test if a node is copyable (copy method is callable and has a the right return type)
 
concept  ConcreteMultiReceiverImplementation
 Test if a type is a valid concrete implementation of the core::implementor::ImplementorReceiver for the InputTypes.
 
concept  ConcreteMultiSenderImplementation
 Test if a type is a valid concrete implementation of the core::implementor::ImplementorSender for the OutputTypes.
 
concept  ConcreteMultiExecuteImplementation
 Test if a type is a valid concrete implementation of the core::implementor::ImplementorExecute for the InputTypes.
 

Typedefs

template<size_t delta, typename ... Types>
using Inputs = typename internals::Splitter< delta, Types... >::Inputs
 Helper getting the input types from a list of template types (variadic)
 
template<size_t delta, typename ... Types>
using Outputs = typename internals::Splitter< delta, Types... >::Outputs
 Helper getting the output types from a list of template types (variadic)
 
template<class Tuple1 , class Tuple2 >
using Intersect_t = typename internals::Intersect< Tuple1, Tuple2 >::type
 Helper getting the intersection of types between two type tuples.
 

Functions

template<typename T >
constexpr auto typeToStrView ()
 Create a string_view containing the type name.
 
template<typename T >
constexpr auto typeToStr ()
 Create a string containing the type name.
 

Variables

template<class T , class ... Ts>
constexpr bool isContainedIn_v = std::disjunction_v<std::is_same<T, Ts>...>
 Helper testing if a type T is in variadic Ts.
 
template<class T , class Tuple >
constexpr bool isContainedInTuple_v = std::tuple_size_v<Intersect_t<std::tuple<T>, Tuple>> == 1
 Helper testing if a type is in a tuple of types.
 

Detailed Description

Hedgehog tool namespace.

Typedef Documentation

◆ Inputs

template<size_t delta, typename ... Types>
using hh::tool::Inputs = typedef typename internals::Splitter<delta, Types...>::Inputs

Helper getting the input types from a list of template types (variadic)

Definition at line 202 of file meta_functions.h.

◆ Intersect_t

template<class Tuple1 , class Tuple2 >
using hh::tool::Intersect_t = typedef typename internals::Intersect<Tuple1, Tuple2>::type

Helper getting the intersection of types between two type tuples.

Definition at line 210 of file meta_functions.h.

◆ Outputs

template<size_t delta, typename ... Types>
using hh::tool::Outputs = typedef typename internals::Splitter<delta, Types...>::Outputs

Helper getting the output types from a list of template types (variadic)

Definition at line 206 of file meta_functions.h.

Function Documentation

◆ typeToStr()

template<typename T >
constexpr auto hh::tool::typeToStr ( )
constexpr

Create a string containing the type name.

Template Parameters
TType to create the string from
Returns
String containing the name of the type

Definition at line 253 of file meta_functions.h.

◆ typeToStrView()

template<typename T >
constexpr auto hh::tool::typeToStrView ( )
constexpr

Create a string_view containing the type name.

Template Parameters
TType to create the string_view from
Returns
string_view containing the name of the type

Definition at line 228 of file meta_functions.h.

Variable Documentation

◆ isContainedIn_v

template<class T , class ... Ts>
constexpr bool hh::tool::isContainedIn_v = std::disjunction_v<std::is_same<T, Ts>...>
constexpr

Helper testing if a type T is in variadic Ts.

Template Parameters
TType to test
TsVariadic of types

Definition at line 216 of file meta_functions.h.

◆ isContainedInTuple_v

template<class T , class Tuple >
constexpr bool hh::tool::isContainedInTuple_v = std::tuple_size_v<Intersect_t<std::tuple<T>, Tuple>> == 1
constexpr

Helper testing if a type is in a tuple of types.

Template Parameters
TType to test
TupleTuple of types

Definition at line 222 of file meta_functions.h.