GNode Class Reference

#include <nodesystem.h>

Inheritance diagram for GNode:

Detailed Description

GNode is the base class of immutable node references. The class hierarchy is

See also usernodes_nodes for a class diagram and more details. The method NodeSystem::GetRoot() returns a reference to the root node of a node system, from this all other nodes and ports can be found. However it is not possible to get mutable node references starting with an immutable reference, for mutable references see MutableRoot.

Public Member Functions

void Reset ()
 
GNodeoperator= (std::nullptr_t)
 
const NodeSystem & GetNodeSystem () const
 
 GNode ()=default
 
 ~GNode ()
 
 GNode (const GNode &other)
 
 MAXON_OPERATOR_COPY_ASSIGNMENT (GNode)
 
 GNode (GNode &&other)
 
 MAXON_OPERATOR_MOVE_ASSIGNMENT (GNode)
 
Result< void > InitFromPath (const NodeSystem &system, const NodePath &path, NODE_KIND check=NODE_KIND::ALL_MASK)
 
- Public Member Functions inherited from GNodeFunctions< GNodeBase >
Bool IsPort () const
 
const PortSelector< GNodeBase ::MUTABLE > & ToPort () const
 
Result< void > GetValues (GraphAttribute::FLAGS mask, GraphAttributeMap &attribs, Bool includeInherited=true, Bool includeRemoved=false) const
 
Result< ConstDataPtrGetValue (const InternedId &attr, const DataType &expectedType) const
 
Result< ConstDataPtrGetValue (const InternedId &attr, const DataType &expectedType, Int &nesting, Bool negativeRootNesting=false) const
 
Result< Opt< const T & > > GetValue (const InternedId &attr) const
 
Result< Opt< const typename ATTR::ValueType & > > GetValue () const
 
Result< Opt< const typename ATTR::ValueType & > > GetValue (Int &nesting) const
 
Result< BoolGetBaseValues (const InternedId &attr, const DataType &expectedType, const ValueReceiver< const ConstDataPtr &, Int > &receiver) const
 
Result< const T & > GetDefaultValue (const T &def=maxon::NullValue< const T & >()) const
 
Result< BoolGetAttributeModificationsSince (TimeStamp stamp, const ValueReceiver< InternedId, ConstDataPtr > &receiver) const
 
TimeStamp GetAttributeStamp (const InternedId &attr) const
 
Result< NodeSelector< GNodeBase ::MUTABLE > > GetNode () const
 
Result< GNodeSelector< GNodeBase ::MUTABLE > > GetParent () const
 
Result< GNodeSelector< GNodeBase ::MUTABLE > > FindChild (const InternedId &name, NODE_KIND mask) const
 
Result< typename NODE::template Selector< GNodeBase ::MUTABLE > > FindInnerNode (const PathBlock &relativePath) const
 
Result< BoolGetInnerNodes (NODE_KIND mask, Bool includeThis, const ValueReceiver< const GNodeSelector< GNodeBase ::MUTABLE > & > &receiver) const
 
const NodeSystem & GetBase () const
 
const Block< const NodeSystem > & GetBases () const
 
Result< BoolGetAllBases (const ValueReceiver< const NodeSystem & > &receiver) const
 
const NodeTemplate & GetTemplate () const
 
Result< BoolGetAllTemplates (const ValueReceiver< const NodeTemplate & > &receiver) const
 
const NodeSystemDerivationHandler & GetDerivationHandler () const
 
- Public Member Functions inherited from GNodeBase
 operator Bool () const
 
Bool IsEmpty () const
 
Bool IsPopulated () const
 
const NodeSystemInterface::ConstPtr & GetNodeSystem () const
 
const NodePath & GetPath () const
 
 operator const NodePath & () const
 
const InternedIdGetId () const
 
NODE_KIND GetKind () const
 
GNODE_FLAGS GetFlags () const
 
Bool operator== (const GNodeBase &other) const
 
Bool operator!= (const GNodeBase &other) const
 
HashInt GetHashCode () const
 
String ToString (const FormatStatement *fs=nullptr) const
 

Protected Member Functions

void SetNodeSystem (const NodeSystem &sys)
 
- Protected Member Functions inherited from GNodeBase
 GNodeBase ()=default
 
 GNodeBase (NodeSystemInterface *system, const GNodeHandle &node)
 
 GNodeBase (NodeSystemInterface *system, GNodeHandle &&node)
 
void SetNodeSystem (NodeSystemInterface *sys)
 

Private Types

using NodeSystemCtorParam = const NodeSystem &
 

Private Member Functions

 GNode (const NodeSystem &system, const GNodeHandle &handle)
 
 GNode (const NodeSystem &system, GNodeHandle &&handle)
 

Friends

class NodesLibImpl
 

Additional Inherited Members

- Protected Types inherited from GNodeFunctions< GNodeBase >
using Super = GNodeBase
 
- Protected Attributes inherited from GNodeBase
NodeSystemInterface_system
 
GNodeHandle _node
 

Member Typedef Documentation

◆ NodeSystemCtorParam

using NodeSystemCtorParam = const NodeSystem&
private

Constructor & Destructor Documentation

◆ GNode() [1/5]

GNode ( )
default

Constructs a null node reference.

◆ GNode() [2/5]

GNode ( const NodeSystem &  system,
const GNodeHandle handle 
)
private

Constructs a g-node reference from a node system and a node handle.

Parameters
[in]systemThe node system to use.
[in]handleA handle for a node within the given node system.

◆ GNode() [3/5]

GNode ( const NodeSystem &  system,
GNodeHandle &&  handle 
)
private

Constructs a g-node reference from a node system and a node handle.

Parameters
[in]systemThe node system to use.
[in]handleA handle for a node within the given node system.

◆ ~GNode()

~GNode ( )

◆ GNode() [4/5]

GNode ( const GNode other)

◆ GNode() [5/5]

GNode ( GNode &&  other)

Member Function Documentation

◆ Reset()

void Reset ( )

Resets this @CLASS to the state it has right after default construction. This includes freeing all resources held by this @CLASS.

◆ operator=()

GNode& operator= ( std::nullptr_t  )

Resets this reference to a null reference.

◆ GetNodeSystem()

const NodeSystem& GetNodeSystem ( ) const

Returns the node system of this node reference. For a null node a null reference is returned.

Returns
The node system of this g-node, or a null reference.

◆ MAXON_OPERATOR_COPY_ASSIGNMENT()

MAXON_OPERATOR_COPY_ASSIGNMENT ( GNode  )

◆ MAXON_OPERATOR_MOVE_ASSIGNMENT()

MAXON_OPERATOR_MOVE_ASSIGNMENT ( GNode  )

◆ InitFromPath()

Result<void> InitFromPath ( const NodeSystem &  system,
const NodePath &  path,
NODE_KIND  check = NODE_KIND::ALL_MASK 
)

Initializes a g-node reference from a node system and a path. If there's no node in the node system for the given path, this reference is set to a null reference. If a node exists but its kind doesn't match the check mask, an IllegalArgumentError is returned.

Parameters
[in]systemThe node system to use.
[in]pathA path which points to a g-node in the given node system.
[in]checkA mask of the expected node kind(s).
Returns
Usually OK (even when path doesn't exist), but an IllegalArgumentError if path exists but doesn't match check.

◆ SetNodeSystem()

void SetNodeSystem ( const NodeSystem &  sys)
protected

Friends And Related Function Documentation

◆ NodesLibImpl

friend class NodesLibImpl
friend