nodesystem.h File Reference

Classes

struct  NullValueFunctions< nodes::TemplateArguments >
 
struct  GNodeDataPtr
 
class  GNodeHandle
 
class  NodeSystemInterface
 
class  NodeSystem
 
class  GNodeBase
 
class  MutableGNodeBase
 
class  GNodeResultBase< SUPER >
 
class  GNodeFunctions< BASE >
 
class  GNode
 
class  MutableGNodeFunctions< BASE >
 
class  MutableGNode
 
class  GNodeIteratorBase
 
class  GNodeIterator< NODE >
 
class  NodeFunctions< BASE >
 
class  Node
 
class  MutableNodeFunctions< BASE >
 
class  MutableNode
 
class  MutableRoot
 
class  PortListFunctions< BASE >
 
class  PortList
 
class  MutablePortListFunctions< BASE >
 
class  MutablePortList
 
class  PortFunctions< BASE >
 
class  Port
 
class  MutablePortFunctions< BASE >
 
class  MutablePort
 

Namespaces

 maxon
 
 maxon::nodes
 
 maxon::nodes::details
 

Macros

#define PRIVATE_MAXON_NODE_CTOR(name, super)
 
#define PRIVATE_MAXON_NODEFN_PROLOGUE
 
#define PRIVATE_MAXON_NODEFN_MEMBERS(name, super)
 
#define PRIVATE_MAXON_NODE_MEMBERS(name, super)
 

Typedefs

template<Bool MUTABLE>
using GNodeSelector = typename std::conditional< MUTABLE, MutableGNode, GNode >::type
 
template<Bool MUTABLE>
using PortListSelector = typename std::conditional< MUTABLE, MutablePortList, PortList >::type
 
template<Bool MUTABLE>
using PortSelector = typename std::conditional< MUTABLE, MutablePort, Port >::type
 
using Connection = Tuple< Port, Wires >
 
using MutableConnection = Tuple< MutablePort, Wires >
 
template<Bool MUTABLE>
using ConnectionSelector = typename std::conditional< MUTABLE, MutableConnection, Connection >::type
 
template<Bool MUTABLE>
using NodeSelector = typename std::conditional< MUTABLE, MutableNode, Node >::type
 
template<typename BASE >
using NodeFunctionsSuper = typename std::conditional< BASE::HAS_ERROR, typename std::conditional< BASE::MUTABLE, MutableGNodeFunctions< BASE >, GNodeFunctions< BASE > >::type, GNodeSelector< BASE::MUTABLE > >::type
 
template<typename BASE >
using PortFunctionsSuper = typename std::conditional< BASE::HAS_ERROR, typename std::conditional< BASE::MUTABLE, MutablePortListFunctions< BASE >, PortListFunctions< BASE > >::type, PortListSelector< BASE::MUTABLE > >::type
 

Enumerations

enum class  GNODE_FLAGS : UInt64 {
  NONE ,
  DIRECT_PORT ,
  DERIVED_PORT_INHERITED ,
  DERIVED_PORT_SYNTHESIZED ,
  CONTEXT_SOURCE ,
  CONTEXT_TARGET ,
  FUNCTION_INSTANTIATION ,
  CONTEXT_PARAMETER_PORT ,
  TAPPING_PORT ,
  DERIVATION_FILTER_SOURCE ,
  DERIVATION_FILTER_TARGET ,
  ALL_MASK
}
 
enum class  VALUEMODE : Char {
  NONE ,
  DYNAMIC ,
  CONSTANT
}
 

Functions

class NodeSystemData MAXON_FORWARD ("maxon/nodesystem_data.h")
 
class NodeSystemClass MAXON_FORWARD ("maxon/nodesystem_class.h")
 
class NodeSystemDerivationHandler MAXON_FORWARD ("maxon/nodesystem_derivation.h")
 
class NodeTemplate MAXON_FORWARD ("maxon/nodetemplate.h")
 
enum maxon::nodes::GNODE_FLAGS UInt64 MAXON_ENUM_FLAGS (GNODE_FLAGS)
 
enum maxon::nodes::VALUEMODE Char MAXON_ENUM_LIST (VALUEMODE)
 
template<typename T >
Result< T > ConstructGNodeResult (typename ConstIf< NodeSystemInterface, !T::MUTABLE >::type *system, Result< GNodeHandle > &&handle)
 
 MAXON_DATATYPE (MutableRoot, "net.maxon.node.datatype.mutableroot")
 

Variables

 NONE
 
 DIRECT_PORT
 
 DERIVED_PORT_INHERITED
 
 DERIVED_PORT_SYNTHESIZED
 
 CONTEXT_SOURCE
 
 CONTEXT_TARGET
 
 FUNCTION_INSTANTIATION
 
 CONTEXT_PARAMETER_PORT
 
 TAPPING_PORT
 
 DERIVATION_FILTER_SOURCE
 
 DERIVATION_FILTER_TARGET
 
 ALL_MASK
 
 DYNAMIC
 
 CONSTANT
 
 DIRECT_ATTRIBUTES
 
 BASE_ATTRIBUTES
 
 DERIVED_ATTRIBUTES
 
 BASES
 
 ALL_BASES
 
 NO_CONNECTIONS
 
 INDUCED_CONNECTIONS
 
 ATTRIBUTES
 
 CLEANUP
 
 FOR_GROUP
 
maxon::nodes::NodeSystemInterface MAXON_ENUM_LIST
 
maxon::nodes::details::GNodeResultBase MAXON_ENUM_FLAGS_CLASS
 

Macro Definition Documentation

◆ PRIVATE_MAXON_NODE_CTOR

#define PRIVATE_MAXON_NODE_CTOR (   name,
  super 
)

◆ PRIVATE_MAXON_NODEFN_PROLOGUE

#define PRIVATE_MAXON_NODEFN_PROLOGUE

◆ PRIVATE_MAXON_NODEFN_MEMBERS

#define PRIVATE_MAXON_NODEFN_MEMBERS (   name,
  super 
)

◆ PRIVATE_MAXON_NODE_MEMBERS

#define PRIVATE_MAXON_NODE_MEMBERS (   name,
  super 
)

Variable Documentation

◆ NONE

NONE

No flag set.

Don't do any finalizations at all.

No flags.

The port doesn't have a value at all.

◆ DIRECT_PORT

DIRECT_PORT

This flag is set for a port which has been created directly by user code, as opposed to derived ports (DERIVED_PORT_INHERITED, DERIVED_PORT_SYNTHESIZED) which are created based on port bundles of connected ports.

◆ DERIVED_PORT_INHERITED

DERIVED_PORT_INHERITED

This flag is set for a port which has been created (or would have been created) during the derivation of inherited ports, namely when a port derives an inner port from an incoming connection from a port bundle.

See also
DIRECT_PORT
DERIVED_PORT_SYNTHESIZED

◆ DERIVED_PORT_SYNTHESIZED

DERIVED_PORT_SYNTHESIZED

This flag is set for a port which has been created (or would have been created) during the derivation of synthesized ports, namely when a port derives an inner port from an outgoing connection to a port bundle.

See also
DIRECT_PORT
DERIVED_PORT_INHERITED

◆ CONTEXT_SOURCE

CONTEXT_SOURCE

This flag is set for a port which is a source port of a CONTEXT wire (or which has an enclosing port with that property).

◆ CONTEXT_TARGET

CONTEXT_TARGET

This flag is set for a port which is a target port of a CONTEXT wire (or which has an enclosing port with that property).

◆ FUNCTION_INSTANTIATION

FUNCTION_INSTANTIATION

This flag is set for a port which has the FunctionParameters attribute set (or which has an enclosing port with that property). Such a port provides a context containing the function parameters, and it instantiates its predecessor subgraph for a compilation into a function.

◆ CONTEXT_PARAMETER_PORT

CONTEXT_PARAMETER_PORT

This flag is set for the context port of a built-in NODE::CONTEXT::GET node.

◆ TAPPING_PORT

TAPPING_PORT

This flag is set for a port for which the TappingPort attribute is true (or which has an enclosing port with that property).

◆ DERIVATION_FILTER_SOURCE

DERIVATION_FILTER_SOURCE

This flag can be set for a port to enable connection filtering for derivation: A connection from a port marked in such a way to a port which has the DERIVATION_FILTER_TARGET flag set has to pass the filter function NodeSystemDerivationHandlerInterface::FilterDerivationConnection, otherwise it isn't reported by PortFunctions::GetConnections.

◆ DERIVATION_FILTER_TARGET

DERIVATION_FILTER_TARGET

See DERIVATION_FILTER_SOURCE.

◆ ALL_MASK

ALL_MASK

Combination of all flags of this enum.

◆ DYNAMIC

DYNAMIC

The port's value is dynamic, so it can't be computed during validation because it depends on values not known at that time.

◆ CONSTANT

CONSTANT

< The port's value is a known constant, so the ConstantValue attribute yields a valid value.

◆ DIRECT_ATTRIBUTES

DIRECT_ATTRIBUTES

Writes direct attributes (those which are set directly at the node system).

◆ BASE_ATTRIBUTES

BASE_ATTRIBUTES

Writes base attributes (those which are inherited from a base node system).

◆ DERIVED_ATTRIBUTES

DERIVED_ATTRIBUTES

Writes derived attributes.

◆ BASES

BASES

Also writes the node systems which are used as bases for the node system.

◆ ALL_BASES

ALL_BASES

Like BASES, but also writes bases of bases etc.

◆ NO_CONNECTIONS

NO_CONNECTIONS

No connections will be written.

◆ INDUCED_CONNECTIONS

INDUCED_CONNECTIONS

Induced connections will be written.

◆ ATTRIBUTES

ATTRIBUTES

Combination of all attribute flags, used to write all attributes.

◆ CLEANUP

CLEANUP

Run clean-up finalizations.

◆ FOR_GROUP

FOR_GROUP

Deprecated.