unstable#
Fully qualified name: omni::graph::exec::unstable
- 
namespace unstable#
 Unstable features currently in development. Do not depend on any API or ABI in this namespace, as it will change without notice.
Classes#
- AtomicBackoff
 Exponential backoff pattern for waiting with a cap number of pauses.
- CompactUniqueIndex
 Registry of unique indexes with recycling of released indexes.
- ConstName
 An immutable name with fast hash based comparisons.
- ExecutionContext
 Stores and provides access to the execution state of the graph.
- ExecutionPath
 Path representing a unique location of an instantiated node during execution.
- ExecutionTask
 Represents work item generated by an IExecutor and passed to a scheduler for dispatch.
- Executor
 Easily configurable omni::graph::exec::unstable::IExecutor implementation providing necessary tools for most common executor types.
- GraphBuilderContextT
 Common state for graph builders.
- GraphBuilderT
 Graph builder is the only class that has the ability to modify topology of a graph.
- GraphT
 Top-level container for storing the Execution Framework's graph of graphs.
- IApplyOnEachFunction
 Interface wrapping a function (possibly with storage) to apply on all instantiations of a given definition.
- IApplyOnEachFunction_abi
 Interface wrapping a function (possibly with storage) to apply on all instantiations of a given definition.
- IBase
 Base class for all omni::graph::exec objects.
- IBase_abi
 Base class for all omni::graph::exec objects.
- IDef
 Base class for all node definitions.
- IDef_abi
 Base class for all node definitions.
- IExecutionContext
 Stores and provides access to the execution state of the graph.
- IExecutionContext_abi
 Stores and provides access to the execution state of the graph.
- IExecutionCurrentThread
 Encapsulates the execution state for the current thread allowing callers to determine quantities like the omni::graph::exec::unstable::ExecutionTask currently executing on the thread.
- IExecutionCurrentThread_abi
 Encapsulates the execution state for the current thread allowing callers to determine quantities like the omni::graph::exec::unstable::ExecutionTask currently executing on the thread.
- IExecutionStateInfo
 State associated with a given execution task.
- IExecutionStateInfo_abi
 State associated with a given execution task.
- IExecutor
 Executes the nodes in a graph definition.
- IExecutor_abi
 Executes the nodes in a graph definition.
- IGlobalPass
 Base class for global passes.
- IGlobalPass_abi
 Base class for global passes.
- IGraph
 Top-level container for storing the Execution Framework's graph of graphs.
- IGraphBuilder
 Graph builder is the only class that has the ability to modify topology of a graph.
- IGraphBuilderContext
 Common state for graph builders.
- IGraphBuilderContext_abi
 Common state for graph builders.
- IGraphBuilderNode
 Describes a node omni::graph::exec::unstable::IGraphBuilder can manipulate.
- IGraphBuilderNode_abi
 Describes a node omni::graph::exec::unstable::IGraphBuilder can manipulate.
- IGraphBuilder_abi
 Graph builder is the only class that has the ability to modify topology of a graph.
- IGraph_abi
 Top-level container for storing the Execution Framework's graph of graphs.
- IInvalidationForwarder
 Interface wrapping a function (possibly with storage) to forward topology invalidation notices.
- IInvalidationForwarder_abi
 Interface wrapping a function (possibly with storage) to forward topology invalidation notices.
- INode
 Represents work in a graph. Nodes point to a shared execution definition to state the actual work.
- INodeDef
 Opaque node definition.
- INodeDef_abi
 Opaque node definition.
- INodeFactory
 Factory interface for creating omni::graph::exec::unstable::INode objects.
- INodeFactory_abi
 Factory interface for creating omni::graph::exec::unstable::INode objects.
- INodeGraphDef
 Graph definition. Defines work to be done as a graph.
- INodeGraphDefDebug
 Interface containing debugging methods for omni::graph::exec::unstable::INodeGraphDef .
- INodeGraphDefDebug_abi
 Interface containing debugging methods for omni::graph::exec::unstable::INodeGraphDef .
- INodeGraphDef_abi
 Graph definition. Defines work to be done as a graph.
- INode_abi
 Represents work in a graph. Nodes point to a shared execution definition to state the actual work.
- IPartitionPass
 Base class for graph partitioning passes.
- IPartitionPass_abi
 Base class for graph partitioning passes.
- IPass
 Base class for graph transformation passes.
- IPassFactory
 Factory interface for creating omni::graph::exec::unstable::IPass objects.
- IPassFactory_abi
 Factory interface for creating omni::graph::exec::unstable::IPass objects.
- IPassPipeline
 Runs registered passes.
- IPassPipeline_abi
 Runs registered passes.
- IPassRegistry
 Registry (database) of known omni::graph::exec::unstable::IPass objects.
- IPassRegistry_abi
 Registry (database) of known omni::graph::exec::unstable::IPass objects.
- IPassTypeRegistry
 omni::graph::exec::unstable::IPassFactory registry for a particular omni::graph::exec::unstable::PassType .
- IPassTypeRegistry_abi
 omni::graph::exec::unstable::IPassFactory registry for a particular omni::graph::exec::unstable::PassType .
- IPass_abi
 Base class for graph transformation passes.
- IPopulatePass
 Base class for populate passes.
- IPopulatePass_abi
 Base class for populate passes.
- IScheduleFunction
 Interface wrapping a function (possibly with storage). Used to wrap a task when passing generated work to the scheduler.
- IScheduleFunction_abi
 Interface wrapping a function (possibly with storage). Used to wrap a task when passing generated work to the scheduler.
- ITopology
 The Topology of a graph is stored in this class.
- ITopology_abi
 The Topology of a graph is stored in this class.
- NodeDefLambda
 Wrapper of a lambda function into an opaque node definition.
- NodeDefT
 Opaque node definition.
- NodeGraphDefT
 Concrete implementation of omni::graph::exec::unstable::INodeGraphDef .
- NodeT
 Concrete implementation of omni::graph::exec::unstable::INode .
- PartitionSet
 Specialized container to enable partitioning algorithm via disjoint set like data structure.
- PassPipelineT
 Runs registered passes.
- RaceConditionFinder
 Helper class for detecting race conditions.
- ScheduleFunction
 Core ScheduleFunction implementation for omni::graph::exec::unstable::IScheduleFunction .
- ScopedExecutionDebug
 Scoped object used mark that a given INodeGraphDef is currently executing.
- ScopedPassRegistration
 Scoped object that registers a pass factory in its constructor and deregisters in the objects destructor.
- SmallVector
 This is a small-vector class with local storage optimization, the local storage can be specified via a template parameter, and expresses the number of entries the container can store locally.
- SmallVectorBase
 Contains parts of the small vector implementation that do not depend on all of SmallVector 's template parameters.
- Span
 A pointer along with the number of items the pointer points to.
- Stamp
 Lazy, light-weight change notification system.
- SyncStamp
 Watcher of a mutating resource. Observes a resources Stamp and detects if it has changed.
- Topology
 The Topology of a graph is stored in this class.
Enumerations#
- BackgroundResultStatus
 Result of waiting for the result of a omni::graph::exec::unstable::IBackgroundResult.
- uint32_t PassPipelineStatus
 Current execution status of pass pipeline a omni::graph::exec::unstable::IPassPipeline .
- PassType
 Grouping type for different passes.
- SchedulingInfo
 Constraints to be fulfilled by the scheduler when dispatching a task.
- uint32_t Status
 Return status of all executions.
Functions#
- auto captureScheduleFunction(Fn &&fn) noexcept -> decltype(detail::ScheduleFunctionHelper< Fn >::capture(std::forward< Fn >(fn)))
 Helper function to efficiently capture an invocable object (i.e. std::function, function ptr, IScheduleFunction*).
- T * cast(omni::core::ObjectParam< U > ptr) noexcept
 Casts the given pointer to the given interface (e.g. T).
- T * cast(U *ptr) noexcept
 Casts the given pointer to the given interface (e.g. T).
- T * cast(omni::core::ObjectPtr< U > ptr) noexcept
 Casts the given pointer to the given interface (e.g. T).
- NodeFactoryPtr createNodeFactory(Fn &&fn)
 Generates an INodeFactory from an invocable object such as a function pointer, functor, etc.
- PassFactoryPtr createPassFactory(Fn &&fn) noexcept
 Generates an IPassFactory from an invocable object such as a function pointer, functor, etc.
- void deregisterModulePasses() noexcept
 Deregisters the module's omni::graph::exec::unstable::IPass factories with IPassRegistry .
- IExecutor * getCurrentExecutor() noexcept
 Access executor currently used on the current thread.
- ExecutionTask * getCurrentTask() noexcept
 Access task currently executed on a calling thread.
- IExecutionCurrentThread * getCurrentThread() noexcept
 Access current thread's execution state.
- IPassRegistry * getPassRegistry() noexcept
 Returns the singleton pass registry.
- omni::graph::exec::unstable::Status invokeScheduleFunction(Fn &&fn) noexcept
 Helper function to efficiently call an invocable object (i.e. std::function, function ptr, IScheduleFunction*).
- constexpr bool operator!=(NameHash lhs, const ConstName &rhs) noexcept
 Compares a hash with a ConstName .
- constexpr bool operator!=(const ConstName &lhs, NameHash rhs) noexcept
 Compares a ConstName with a hash.
- bool operator!=(const ExecutionPath &lhs, const ExecutionPath &rhs) noexcept
 Comparison operator.
- constexpr bool operator!=(const ConstName &lhs, const ConstName &rhs) noexcept
 Compares two ConstName objects.
- auto operator+(const ConstName &lhs, const std::string &rhs)
 Concatenates
std::stringwith a ConstName . Returns aomni::string.- auto operator+(const std::string &lhs, const ConstName &rhs)
 Concatenates
std::stringwith a ConstName . Returns aomni::string.- constexpr bool operator<(NameHash lhs, const ConstName &rhs) noexcept
 Compares a hash with a ConstName .
- constexpr bool operator<(const ConstName &lhs, NameHash rhs) noexcept
 Compares a ConstName with a hash.
- constexpr bool operator<(const ConstName &lhs, const ConstName &rhs) noexcept
 Compares two ConstName objects.
- std::ostream & operator<<(std::ostream &os, const ConstName &str)
 Output stream operator overload. Outputs the contents of
strto the streamos.- constexpr bool operator==(NameHash lhs, const ConstName &rhs) noexcept
 Compares a hash with a ConstName .
- constexpr bool operator==(const ConstName &lhs, NameHash rhs) noexcept
 Compares a ConstName with a hash.
- constexpr bool operator==(const ConstName &lhs, const ConstName &rhs) noexcept
 Compares two ConstName objects.
- bool operator==(const ExecutionPath &lhs, const ExecutionPath &rhs) noexcept
 Comparison operator.
- void quickPartitioning(ITopology *topology, Span< INode * > selectedNodes, VerifyAndCreateFn &&verifyAndCommitPartitionFn)
 Algorithm to group selected nodes into valid partitions based on node ordering.
- void registerModulePasses() noexcept
 Registers the module's omni::graph::exec::unstable::IPass factories with omni::graph::exec::unstable::IPassRegistry .
- void swap(SmallVector< T, N > &a, SmallVector< T, N > &b)
 Swap fuction for SmallVector .
- Span< INode *const > toSpan(const std::vector< omni::core::ObjectPtr< INode > > &nodes) noexcept
 Converts an contiguous array of NodePtr to a Span . This is useful when returning the array via the ABI.
- void traverseBreadthFirst(INode *node, typename Traversal< INode, ITopology, Strategy, FlowBreadthFirst, NodeUserData, false >::CallbackFn call)
 Performs a breadth-first (BFS) traversal of a node.
- auto traverseBreadthFirstAsync(INode *node, typename Traversal< INode, ITopology, Strategy, FlowBreadthFirst, NodeUserData, false >::CallbackFn call)
 Performs a breadth-first (BFS) traversal of a node while allowing for asynchronous work to be performed by the given lambda.
- void traverseDepthFirst(INode *node, typename Traversal< INode, ITopology, Strategy, FlowDepthFirst, NodeUserData, false >::CallbackFn call)
 Performs a depth-first (DFS) traversal of a node.
- auto traverseDepthFirstAsync(INode *node, typename Traversal< INode, ITopology, Strategy, FlowDepthFirst, NodeUserData, false >::CallbackFn call)
 Performs a depth-first (DFS) traversal of a node while allowing for asynchronous work to be performed by the given lambda.
- uint32_t useCount(T *ptr) noexcept
 Helper utility to access the number of different instances referencing the given object.
- void writeFlattenedAsGraphviz(omni::core::ObjectParam< IGraph > inGraph, std::ostream &out, const bool deterministicAndSimplified=false)
 Debugging utility to write out the graph topology in a graphviz format.
Namespaces#
- detail
 Implementation details for omni::graph::exec . Items in this namespace should not be relied on outside of the API.
Structs#
- DefaultSchedulingStrategy
 Algorithm to determine how task should be scheduled.
- EnumBitops
 Enable bitwise operations on enum classes. Templates save on writing boiler plate code to allow this.
- EnumBitops< PassPipelineStatus >
 Enable bitwise operations on PassPipelineStatus state.
- EnumBitops< Status >
 Enable bitwise operations on return state.
- EnumBitops< detail::VisitOrder >
 Enable bitwise operation on VisitOrder.
- ExecutionNodeData
 Data available for executor on every node when traversing the graph.
- ExecutionVisit
 Graph traversal visit strategy.
- ExecutionVisitWithCacheCheck
 Graph traversal visit strategy with dirty cache check.
- Implements
 Helper template for implementing one or more interfaces.
- ImplementsCastWithoutAcquire
 Helper template for implementing the castWithoutAcquire function for one or more interfaces.
- PassTypeRegistryEntry
 ABI-safe struct to hold registered omni::graph::exec::unstable::IPassFactory objects.
- SerialScheduler
 Basic scheduler which executes the task on calling thread and accumulates the result.
Typedefs#
- ApplyOnEachFunctionPtr
 Smart pointer managing an instance of IApplyOnEachFunction .
- DefPtr
 Smart pointer managing an instance of omni::graph::exec::unstable::IDef .
- ExectorPtr
 Smart pointer managing an instance of IExecutor .
- ExecutionContextPtr
 Smart pointer managing an instance of IExecutionContext .
- ExecutionCurrentThreadPtr
 Smart pointer managing an instance of IExecutionCurrentThread .
- ExecutionPathHash
 Hash of each node's topology index in a path.
- ExecutionTaskTag
 A task tag can be used by other entities (such as Executor ) to group tasks together.
- ExecutorFactory
 Factory owned by a node graph definition used to instantiate an executor to generate work with the graph definition.
- ExecutorFallback
 Default executor used by all node graph definitions that don't explicitly pass the executor factory method.
- GlobalPassPtr
 Smart pointer managing an instance of IGlobalPass .
- Graph
 Core Graph implementation for omni::graph::exec::unstable::IGraph .
- GraphBuilder
 Core GraphBuilder implementation for omni::graph::exec::unstable::IGraphBuilder .
- GraphBuilderContext
 Core GraphBuilderContext implementation for omni::graph::exec::unstable::IGraphBuilderContext .
- GraphBuilderContextPtr
 Smart pointer managing an instance of IGraphBuilderContext .
- GraphBuilderNodePtr
 Smart pointer managing an instance of IGraphBuilderNode .
- GraphBuilderPtr
 Smart pointer managing an instance of IGraphBuilder .
- GraphPtr
 Smart pointer managing an instance of IGraph .
- InvalidationForwarderId
 Unique owner of the callback. Meaning is up to the caller. Essentially a void* pointer.
- InvalidationForwarderPtr
 Smart pointer managing an instance of IInvalidationForwarder .
- NameHash
 Type which store a unique identifier for a node or definition.
- Node
 Core node implementation for omni::graph::exec::unstable::INode .
- NodeDataDeleterFn
 Type specific function for deleting context specific execution data associated with a node.
- NodeDataKey
 Key for a piece of data attached to a node.
- NodeDef
 Core NodeDef implementation for omni::graph::exec::unstable::INodeDef .
- NodeDefPtr
 Smart pointer managing an instance of omni::graph::exec::unstable::INodeDef .
- NodeFactoryPtr
 Smart pointer managing an instance of INodeFactory .
- NodeGraphDef
 Core NodeGraphDef implementation for omni::graph::exec::unstable::INodeGraphDef .
- NodeGraphDefDebugPtr
 Smart pointer managing an instance of INodeGraphDefDebug .
- NodeGraphDefPtr
 Smart pointer managing an instance of INodeGraphDef .
- NodeIndexInTopology
 Each node in an ITopology is given a unique index (via ITopology::acquireNodeIndex() ).
- NodePartition
 Type definition used to pass node partitions in the ABI.
- NodePtr
 Smart pointer managing an instance of INode .
- PartitionPassPtr
 Smart pointer managing an instance of IPartitionPass .
- PassFactoryPtr
 Smart pointer managing an instance of IPassFactory .
- PassPipeline
 Core PassPipeline implementation for omni::graph::exec::unstable::IPassPipeline .
- PassPipelinePtr
 Smart pointer managing an instance of IPassPipeline .
- PassPriority
 Pass priority used by IPassPipeline to resolve conflicts between passes.
- PassPtr
 Smart pointer managing an instance of omni::graph::exec::unstable::IPass .
- PassRegistryPtr
 Smart pointer managing an instance of omni::graph::exec::unstable::IPassRegistry .
- PassTypeRegistryPtr
 Smart pointer managing an instance of IPassTypeRegistry .
- PopulatePassPtr
 Smart pointer managing an instance of IPopulatePass .
- Stamp_abi
 Low-level ABI type to represent Stamp .
- VisitAll
 Traversal strategy that allows discovering all the edges in the graph. Traversal continuation is controlled by user code.
- VisitFirst
 Traversal strategy that enters the node when it was first time discovered.
- VisitLast
 Traversal strategy that enters the node when entire upstream was already visited and this is the last opportunity to enter the node.
Variables#
- constexpr const uint64_t kInvalidNodeIndexInTopology
 Constant to denote an INode has not been assigned an index in an ITopology .