OperatorMicroNode< OP, I > Class Template Reference

#include <corenodes_implementer.h>

Inheritance diagram for OperatorMicroNode< OP, I >:

Public Member Functions

MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Process (Batch< typename OP::in, typename OP::out > &batch) const
 
decltype(OperatorNodeLlvm< OP >::GetLlvmAssembly(GetZeroRef< LlvmGlobalsReceiver >())) GetLlvmAssembly (const LlvmGlobalsReceiver &receiver) const
 
- Public Member Functions inherited from BatchMicroNode
 MAXON_SECONDARG (,, template< typename PORTMODE >) static void Process()
 
template<typename MN >
void PrivateInit ()
 
- Public Member Functions inherited from MicroNode
enum maxon::corenodes::MicroNode::TYPE MAXON_ENUM_ORDERED_FLAGS_CLASS (TYPE)
 
enum maxon::corenodes::MicroNode::FLAGS Int64 MAXON_ENUM_FLAGS_CLASS (FLAGS)
 
const BaseToBase () const
 
BaseToBase ()
 
Bool HasSameClass (const MicroNode &other) const
 
const MicroNodeInterfaceGetNode () const
 
MicroNodeInterfaceGetNode ()
 
TYPE GetType () const
 
FLAGS GetFlags () const
 
enum maxon::corenodes::MicroNode::PORTSACCESS_FLAGS MAXON_ENUM_FLAGS_CLASS (PORTSACCESS_FLAGS)
 

Additional Inherited Members

- Public Types inherited from BatchMicroNode
using MicroNodeClass = BatchMicroNode
 
template<typename... PORTS>
using Batch = PortsAccess< PORTSACCESS_FLAGS::BATCH, PORTS... >
 
using ProcessFn = Result< void >(*)(const MicroNode *, const void *,)
 
- Public Types inherited from MicroNode
enum class  TYPE {
  INVALID ,
  BASIC ,
  BATCH ,
  SPLIT_MERGE ,
  ITERATION ,
  SEQUENCING ,
  RECURSION_STEP ,
  CURRENT_ITERATION_VALUE ,
  CURRENT_ITERATION_VALUE_WITH_INIT ,
  COPY ,
  SET_TRUE ,
  NOP ,
  SUBTRACTIVE_DOMAIN ,
  JOIN ,
  CONTROL_TRANSFER ,
  MAX_WITHOUT_FLAG ,
  VARIABLE_MASK ,
  MIN_FLAG ,
  VALUE_PORT_MASK ,
  INPUT_PORT_MASK ,
  EXPORTED_PORT ,
  VIRTUAL_INPUT_PORT ,
  OUTPUT_PORT_MASK ,
  VARIABLE ,
  PORT_MASK ,
  FACTOR_MASK ,
  ROOT ,
  WHILE_CONDITION ,
  INDEFINITE_LOOP ,
  BLOCK ,
  TOP_LEVEL_FACTOR_MASK ,
  FRAME_MASK ,
  TOP_LEVEL_FRAME ,
  FRAME ,
  EVENT_MASK ,
  EVENT ,
  FACTOR_HEAD_MASK ,
  BLOCK_HEAD ,
  CONDITIONAL_HEAD ,
  RECURSION_HEAD ,
  DEFINITE_FACTOR_HEAD_MASK ,
  CONTAINER_LOOP_HEAD_MASK ,
  CONTAINER_OUTPUT_HEAD_MASK ,
  DEFINITE_FACTOR_MASK ,
  CONTAINER_OUTPUT_ELEMENT_MASK ,
  INDEXABLE_FACTOR_MASK ,
  DIMENSIONAL_FACTOR_TEST ,
  CONTAINER_LOOP_MASK ,
  DEFINITE_LOOP_HEAD ,
  CONTAINER_LOOP_HEAD ,
  ARRAY_LOOP_HEAD ,
  CONTAINER_LOOP ,
  ARRAY_LOOP ,
  CONTAINER_OUTPUT_HEAD ,
  CONTAINER_OUTPUT_ELEMENT ,
  ARRAY_OUTPUT_ELEMENT ,
  DEFINITE_LOOP ,
  GENERIC_DEFINITE_LOOP ,
  RECURSION ,
  INPUT_ELEMENT_MASK ,
  ARRAY_INPUT_ELEMENT ,
  CONTAINER_INPUT_ELEMENT ,
  INPUT_MASK ,
  OUTPUT_MASK ,
  CONDITIONAL_MASK ,
  IF ,
  CONTAINER_MASK ,
  CONTAINER ,
  ARRAY_CONTAINER ,
  ARRAY ,
  CONTAINER_OUTPUT_MASK ,
  CONTAINER_OUTPUT ,
  CONTAINER_INPUT_GROUP_MASK ,
  CONTAINER_INPUT_GROUP ,
  FACTOR_WITH_FACTOR_VARIABLE ,
  ALL
}
 
enum class  FLAGS : Int64 {
  NONE ,
  STATE ,
  STATE_MODIFIER ,
  LOCAL ,
  PERMANENT ,
  CACHED ,
  CURRENT_ITV ,
  NEXT_ITV ,
  CONTAINER_MEMBER ,
  COMMUTATIVE ,
  STATE_MAPPER ,
  PARAMETER ,
  INPUT_WITHOUT_VALUE ,
  OUTER_DOMAIN ,
  SUSPEND ,
  INDEPENDENT ,
  INCLUDE_IN_PREDECESSORS ,
  FACTOR_REFERENCE ,
  OPTIONAL_INPUT ,
  CURRENT_ITV_GROUP ,
  NEXT_ITV_GROUP ,
  NEW_UNIQUE_NAME ,
  TIME_LOOP ,
  UNDERSCORE_NUMBER_PREFIX ,
  WRAPPER_DONT_WRAP ,
  WRAPPER_HIDDEN ,
  WRAPPER_KEEP_LETTER_CASE ,
  WRAPPER_LAMBDA ,
  WRAPPER_USE_ATTRIBUTE_RESOURCES ,
  WRAPPER_FIXED_VARIADIC ,
  WRAPPER_COPIED_VARIADIC ,
  WRAPPER_INNER_DOMAIN ,
  WRAPPER_OUTER_DOMAIN ,
  WRAPPER_ENCLOSING_DOMAIN ,
  WRAPPER_STREAM ,
  WRAPPER_CONTEXT ,
  NO_LIFETIME_PORT ,
  NO_FACTOR_NODES ,
  WRAPPER_FLAGS ,
  ITV_MASK ,
  ITV_GROUP_MASK ,
  PORT_MODIFIERS ,
  MODIFIERS ,
  PORTINFO_FLAGS ,
  ALL
}
 
enum class  PORTSACCESS_FLAGS {
  NONE ,
  ITERATION ,
  CONTAINER_MASK ,
  CONST_MASK ,
  BATCH ,
  BATCH_ACCESS ,
  CONTAINER ,
  CONST_CONTAINER ,
  DIRECT_ACCESS_TEST
}
 
template<typename PORT >
using Input = typename PORT::PrivateInput
 
template<typename... PORTS>
using Ports = typename PortsAccess< PORTSACCESS_FLAGS::NONE, PORTS... >::Members
 
- Static Public Member Functions inherited from MicroNode
static void InitUserData ()
 
static void GetLlvmAssembly (const LlvmGlobalsReceiver &)
 
- Public Attributes inherited from BatchMicroNode
Base _base
 
ProcessFn _fProcess [1]
 
corenodes::details::InitUserDataFn _fInitUserData
 
corenodes::details::GetLlvmAssemblyFn _fGetLlvmAssembly
 
- Public Attributes inherited from MicroNode
class maxon::corenodes::MicroNode::Base MAXON_ENUM_FLAGS_CLASS
 
- Static Public Attributes inherited from BatchMicroNode
static const TYPE MICRONODE_TYPE
 
static const WIRETYPE IS_TARGET_OF
 
static const WIRETYPE IS_SOURCE_OF
 
- Static Public Attributes inherited from MicroNode
static const TYPE INPUT_TYPE_MASK
 
static const TYPE OUTPUT_TYPE_MASK
 
static const FLAGS MICRONODE_FLAGS
 

Member Function Documentation

◆ Process()

MAXON_ATTRIBUTE_FORCE_INLINE Result<void> Process ( Batch< typename OP::in, typename OP::out > &  batch) const

◆ GetLlvmAssembly()

decltype(OperatorNodeLlvm<OP>::GetLlvmAssembly(GetZeroRef<LlvmGlobalsReceiver>())) GetLlvmAssembly ( const LlvmGlobalsReceiver receiver) const