Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
_StorageSetup< FUN > Struct Template Reference

#include "steam/engine/feed-manifold.hpp"

Description

template<class FUN>
struct steam::engine::_StorageSetup< FUN >

Configuration context for a FeedManifold.

This type-rebinding helper provides a storage configuration specifically tailored to serve the invocation of FUN

Note
storage segments for input and parameters are only present when the given function is classified by _ProcFun<FUN> as handling input and / or parameters.
Remarks
since BuffHandle is not default-constructible, but must be retrieved from a BufferProvider rather, a chunk of uninitialised storage is used to accept the BuffHandles allocated and populated with results from preceding Nodes.

Definition at line 318 of file feed-manifold.hpp.

Classes

struct  BufferSlot_Input
 FeedManifold building block: hold input buffer pointers. More...
 
struct  BufferSlot_Output
 FeedManifold building block: hold output buffer pointers. More...
 
struct  ParamStorage
 FeedManifold building block: hold parameter data. More...
 
struct  Storage
 Data Storage block for the FeedManifold Flexibly configured based on the processing function. More...
 

Public Types

enum  {
  FAN_P = hasParam()? _Trait::FAN_P : 0 ,
  FAN_I = hasInput()? _Trait::FAN_I : 0 ,
  FAN_O = _Trait::FAN_O
}
 
using _Trait = _ProcFun< FUN >
 
template<size_t fan>
using BuffS = lib::UninitialisedStorage< BuffHandle, fan >
 
using BuffI = BuffS< FAN_I >
 
using BuffO = BuffS< FAN_O >
 
using Param = conditional_t< hasParam(), typename _Trait::SigP, std::tuple<> >
 
using ArgI = conditional_t< hasInput(), typename _Trait::SigI, std::tuple<> >
 
using ArgO = _Trait::SigO
 
template<typename F >
using enable_if_hasParam = lib::meta::enable_if_c< _ProcFun< F >::hasParam()>::type
 
template<class X >
using NotProvided = Tagged< Nil, X >
 
template<bool yes, class B >
using Provide_if = conditional_t< yes, B, NotProvided< B > >
 
using FeedOutput = BufferSlot_Output
 
using FeedInput = Provide_if< hasInput(), BufferSlot_Input >
 
using FeedParam = Provide_if< hasParam(), ParamStorage >
 

Static Public Member Functions

static constexpr bool hasInput ()
 
static constexpr bool hasParam ()
 

Class Documentation

◆ steam::engine::_StorageSetup::BufferSlot_Input

struct steam::engine::_StorageSetup::BufferSlot_Input
Class Members
BuffI inBuff
ArgI inArgs {}
+ Collaboration diagram for _StorageSetup< FUN >::BufferSlot_Input:

Member Typedef Documentation

◆ _Trait

template<class FUN >
using _Trait = _ProcFun<FUN>

Definition at line 320 of file feed-manifold.hpp.

◆ BuffS

template<class FUN >
template<size_t fan>
using BuffS = lib::UninitialisedStorage<BuffHandle, fan>

Definition at line 331 of file feed-manifold.hpp.

◆ BuffI

template<class FUN >
using BuffI = BuffS<FAN_I>

Definition at line 333 of file feed-manifold.hpp.

◆ BuffO

template<class FUN >
using BuffO = BuffS<FAN_O>

Definition at line 334 of file feed-manifold.hpp.

◆ Param

template<class FUN >
using Param = conditional_t<hasParam(), typename _Trait::SigP, std::tuple<> >

Definition at line 336 of file feed-manifold.hpp.

◆ ArgI

template<class FUN >
using ArgI = conditional_t<hasInput(), typename _Trait::SigI, std::tuple<> >

Definition at line 337 of file feed-manifold.hpp.

◆ ArgO

template<class FUN >
using ArgO = _Trait::SigO

Definition at line 338 of file feed-manifold.hpp.

◆ enable_if_hasParam

template<class FUN >
template<typename F >
using enable_if_hasParam = lib::meta::enable_if_c<_ProcFun<F>::hasParam()>::type

Definition at line 371 of file feed-manifold.hpp.

◆ NotProvided

template<class FUN >
template<class X >
using NotProvided = Tagged<Nil, X>

Definition at line 374 of file feed-manifold.hpp.

◆ Provide_if

template<class FUN >
template<bool yes, class B >
using Provide_if = conditional_t<yes, B, NotProvided<B> >

Definition at line 377 of file feed-manifold.hpp.

◆ FeedOutput

template<class FUN >
using FeedOutput = BufferSlot_Output

Definition at line 379 of file feed-manifold.hpp.

◆ FeedInput

template<class FUN >
using FeedInput = Provide_if<hasInput(), BufferSlot_Input>

Definition at line 380 of file feed-manifold.hpp.

◆ FeedParam

template<class FUN >
using FeedParam = Provide_if<hasParam(), ParamStorage>

Definition at line 381 of file feed-manifold.hpp.

Member Enumeration Documentation

◆ anonymous enum

template<class FUN >
anonymous enum
Enumerator
FAN_P 
FAN_I 
FAN_O 

Definition at line 325 of file feed-manifold.hpp.

Member Function Documentation

◆ hasInput()

template<class FUN >
static constexpr bool hasInput ( )
inlinestaticconstexpr

Definition at line 322 of file feed-manifold.hpp.

Referenced by FeedManifold< FUN >::hasInput().

+ Here is the caller graph for this function:

◆ hasParam()

template<class FUN >
static constexpr bool hasParam ( )
inlinestaticconstexpr

Definition at line 323 of file feed-manifold.hpp.

Referenced by FeedManifold< FUN >::hasParam().

+ Here is the caller graph for this function:
+ Collaboration diagram for _StorageSetup< FUN >:

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