Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
ProcID Class Reference

#include "steam/engine/proc-id.hpp"

Description

Metadata to qualify a Port (and implicitly the enclosing Node).

Note
must be essentially immutable; should ensure that implementation never changes anything constituent for the hash_value(), due to de-duplication into a hashtable (see proc-node.cpp).
Warning
be sure always to take a reference to the instance emplaced into the procRegistry (see proc-node.cpp); inadvertently taking a reference to some transient ProcID value leads to insidious errors!

Definition at line 122 of file proc-id.hpp.

Classes

struct  ArgModel
 Expanded information regarding node input and output. More...
 

Static Public Member Functions

static ProcIDdescribe (StrView nodeSymb, StrView portSpec, ProcAttrib extAttrib=ProcAttrib{})
 build and register a processing ID descriptor
 

Public Member Functions

string genProcName () const
 
string genProcSpec () const
 render a descriptor for the operation (without predecessors)
 
string genQualifier () const
 
string genNodeName () const
 
string genNodeSymbol () const
 
string genNodeDomain () const
 
string genNodeSpec (Leads &) const
 
string genSrcSpec (Leads &) const
 transitively enumerate all unique source nodes
 
ArgModel genArgModel () const
 
bool hasManifoldPatt () const
 
bool hasProxyPatt () const
 

Friends

bool operator== (ProcID const &l, ProcID const &r)
 
bool operator!= (ProcID const &l, ProcID const &r)
 
HashVal hash_value (ProcID const &)
 

Private Types

using ProcNodeRef = std::reference_wrapper< ProcNode >
 
using Leads = lib::Several< ProcNodeRef >
 

Private Member Functions

 ProcID (StrView nodeSymb, StrView portQual, StrView argLists, ProcAttrib)
 
- Private Member Functions inherited from MoveOnly
 ~MoveOnly ()=default
 
 MoveOnly ()=default
 
 MoveOnly (MoveOnly &&)=default
 
 MoveOnly (MoveOnly const &)=delete
 
MoveOnlyoperator= (MoveOnly &&)=delete
 
MoveOnlyoperator= (MoveOnly const &)=delete
 

Private Attributes

StrView nodeName_
 
StrView portQual_
 
StrView argLists_
 
ProcAttrib attrib_
 

Constructor & Destructor Documentation

◆ ProcID()

ProcID ( StrView  nodeSymb,
StrView  portQual,
StrView  argLists,
ProcAttrib   
)
private

Member Typedef Documentation

◆ ProcNodeRef

Definition at line 132 of file proc-id.hpp.

◆ Leads

using Leads = lib::Several<ProcNodeRef>
private

Definition at line 133 of file proc-id.hpp.

Member Function Documentation

◆ describe()

static ProcID & describe ( StrView  nodeSymb,
StrView  portSpec,
ProcAttrib  extAttrib = ProcAttrib{} 
)
static

build and register a processing ID descriptor

Referenced by WeavingBuilder< POL, PROT >::build(), NodeLink_test::build_simple_node(), ParamAgentBuilder< POL, DAT, SPEC >::completePort(), NodeFeed_test::feedParam(), NodeMeta_test::verify_ID_specification(), and NodeBase_test::verify_NodeStructure().

+ Here is the caller graph for this function:

◆ genProcName()

string genProcName ( ) const

◆ genProcSpec()

string genProcSpec ( ) const

render a descriptor for the operation (without predecessors)

Referenced by ParamAgentBuilder< POL, DAT, SPEC >::completePort().

+ Here is the caller graph for this function:

◆ genQualifier()

string genQualifier ( ) const

◆ genNodeName()

string genNodeName ( ) const

◆ genNodeSymbol()

string genNodeSymbol ( ) const

◆ genNodeDomain()

string genNodeDomain ( ) const

◆ genNodeSpec()

string genNodeSpec ( Leads ) const

◆ genSrcSpec()

string genSrcSpec ( Leads ) const

transitively enumerate all unique source nodes

◆ genArgModel()

ArgModel genArgModel ( ) const

Referenced by NodeMeta_test::verify_ID_specification().

+ Here is the caller graph for this function:

◆ hasManifoldPatt()

bool hasManifoldPatt ( ) const
inline

Definition at line 153 of file proc-id.hpp.

References ProcID::attrib_, and ProcAttrib::manifold.

◆ hasProxyPatt()

bool hasProxyPatt ( ) const
inline

Definition at line 154 of file proc-id.hpp.

References ProcID::attrib_, and ProcAttrib::isProxy.

Member Data Documentation

◆ nodeName_

StrView nodeName_
private

Definition at line 125 of file proc-id.hpp.

◆ portQual_

StrView portQual_
private

Definition at line 126 of file proc-id.hpp.

◆ argLists_

StrView argLists_
private

Definition at line 127 of file proc-id.hpp.

◆ attrib_

ProcAttrib attrib_
private

Definition at line 128 of file proc-id.hpp.

Referenced by ProcID::hasManifoldPatt(), and ProcID::hasProxyPatt().

Friends And Related Symbol Documentation

◆ operator==

bool operator== ( ProcID const &  l,
ProcID const &  r 
)
friend

Definition at line 157 of file proc-id.hpp.

◆ operator!=

bool operator!= ( ProcID const &  l,
ProcID const &  r 
)
friend

Definition at line 166 of file proc-id.hpp.

◆ hash_value

HashVal hash_value ( ProcID const &  )
friend
+ Inheritance diagram for ProcID:
+ Collaboration diagram for ProcID:

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