Lumiera  0.pre.03
»edit your freedom«
NodeBuilder< POL, DAT > Class Template Reference

Description

template<class POL, class DAT = PatternDataAnchor>
class steam::engine::NodeBuilder< POL, DAT >

Definition at line 134 of file node-builder.hpp.

Public Member Functions

template<typename... INIT>
 NodeBuilder (StrView nodeSymbol, INIT &&...alloInit)
 
template<class BUILD , uint siz, class D0 >
 NodeBuilder (NodeBuilder< POL, D0 > &&pred, SizMark< siz >, BUILD &&entryBuilder)
 
NodeBuilder addLead (ProcNode const &lead)
 
Connectivity build ()
 Terminal: complete the ProcNode Connectivity defined thus far.
 
PortBuilderRoot< POL, DAT > preparePort ()
 recursively enter detailed setup of a single processing port More...
 
template<template< typename > class ALO = std::void_t, typename... INIT>
auto withAllocator (INIT &&...alloInit)
 cross-builder function to specify usage of a dedicated node allocator More...
 

Friends

template<class P , class D0 >
class NodeBuilder
 

Protected Attributes

LeadRefs leads_
 
DAT patternData_
 
StrView symbol_
 

Private Types

using LeadRefs = DataBuilder< POL, ProcNodeRef >
 
using PortData = DataBuilder< POL, Port >
 

Additional Inherited Members

- Private Member Functions inherited from MoveOnly
 MoveOnly (MoveOnly &&)=default
 
 MoveOnly (MoveOnly const &)=delete
 
MoveOnlyoperator= (MoveOnly &&)=delete
 
MoveOnlyoperator= (MoveOnly const &)=delete
 

Member Function Documentation

◆ preparePort()

PortBuilderRoot< POL, DAT > preparePort ( )
inline

recursively enter detailed setup of a single processing port

Remarks
while logically this builder-function descends into the definition of a port, for the implementation we wrap the existing NodeBuilder and layer a PortBuilder subclass „on top“ — thereby shadowing the enclosed original builder temporarily; the terminal builder operation PortBuilder::completePort() will unwrap and return the original NodeBuilder.

Definition at line 268 of file node-builder.hpp.

◆ withAllocator()

auto withAllocator ( INIT &&...  alloInit)
inline

cross-builder function to specify usage of a dedicated node allocator

Template Parameters
ALO(optional) spec for the allocator to use
INIT(optional) initialisation arguments for the allocator
Remarks
this is a front-end to the extension point for allocator specification exposed through lib::SeveralBuilder::withAllocator(). The actual meaning of the given parameters and the choice of the actual allocator happens through resolution of partial template specialisations of the extension point lib::allo::SetupSeveral. Some notable examples
  • withAllocator<ALO>() attaches to a monostate allocator type.
  • withAllocator<ALO> (ALO<X> allo) uses a C++ standard allocator instance allo, dedicated to produce objects of type X
  • withAllocator (AllocationCluster&) attaches to a specific AllocationCluster; this is the most relevant usage pattern

Definition at line 201 of file node-builder.hpp.

+ Inheritance diagram for NodeBuilder< POL, DAT >:
+ Collaboration diagram for NodeBuilder< POL, DAT >:

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