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_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.
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.
Enumerations
BackgroundResultStatus: Result of waiting for the result of a omni::graph::exec::unstable::IBackgroundResult.
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.
Status: Return status of all executions.
Functions
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*).
cast(omni::core::ObjectParam< U > ptr) noexcept: Casts the given pointer to the given interface (e.g. T).
cast(U *ptr) noexcept: Casts the given pointer to the given interface (e.g. T).
cast(omni::core::ObjectPtr< U > ptr) noexcept: Casts the given pointer to the given interface (e.g. T).
createNodeFactory(Fn &&fn): Generates an INodeFactory from an invocable object such as a function pointer, functor, etc.
createPassFactory(Fn &&fn) noexcept: Generates an IPassFactory from an invocable object such as a function pointer, functor, etc.
deregisterModulePasses() noexcept: Deregisters the module's omni::graph::exec::unstable::IPass factories with IPassRegistry .
getCurrentExecutor() noexcept: Access executor currently used on the current thread.
getCurrentTask() noexcept: Access task currently executed on a calling thread.
getCurrentThread() noexcept: Access current thread's execution state.
getPassRegistry() noexcept: Returns the singleton pass registry.
invokeScheduleFunction(Fn &&fn) noexcept: Helper function to efficiently call an invocable object (i.e. std::function, function ptr, IScheduleFunction*).
operator!=(NameHash lhs, const ConstName &rhs) noexcept: Compares a hash with a ConstName .
operator!=(const ConstName &lhs, NameHash rhs) noexcept: Compares a ConstName with a hash.
operator!=(const ExecutionPath &lhs, const ExecutionPath &rhs) noexcept: Comparison operator.
operator!=(const ConstName &lhs, const ConstName &rhs) noexcept: Compares two ConstName objects.
operator+(const ConstName &lhs, const std::string &rhs): Concatenates
std::string
with a ConstName . Returns aomni::string
.operator+(const std::string &lhs, const ConstName &rhs): Concatenates
std::string
with a ConstName . Returns aomni::string
.operator<(NameHash lhs, const ConstName &rhs) noexcept: Compares a hash with a ConstName .
operator<(const ConstName &lhs, NameHash rhs) noexcept: Compares a ConstName with a hash.
operator<(const ConstName &lhs, const ConstName &rhs) noexcept: Compares two ConstName objects.
operator<<(std::ostream &os, const ConstName &str): Output stream operator overload. Outputs the contents of
str
to the streamos
.operator==(NameHash lhs, const ConstName &rhs) noexcept: Compares a hash with a ConstName .
operator==(const ConstName &lhs, NameHash rhs) noexcept: Compares a ConstName with a hash.
operator==(const ConstName &lhs, const ConstName &rhs) noexcept: Compares two ConstName objects.
operator==(const ExecutionPath &lhs, const ExecutionPath &rhs) noexcept: Comparison operator.
quickPartitioning(ITopology *topology, Span< INode * > selectedNodes, VerifyAndCreateFn &&verifyAndCommitPartitionFn): Algorithm to group selected nodes into valid partitions based on node ordering.
registerModulePasses() noexcept: Registers the module's omni::graph::exec::unstable::IPass factories with omni::graph::exec::unstable::IPassRegistry .
swap(SmallVector< T, N > &a, SmallVector< T, N > &b): Swap fuction for SmallVector .
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.
traverseBreadthFirst(INode *node, typename Traversal< INode, ITopology, Strategy, FlowBreadthFirst, NodeUserData, false >::CallbackFn call): Performs a breadth-first (BFS) traversal of a node.
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.
traverseDepthFirst(INode *node, typename Traversal< INode, ITopology, Strategy, FlowDepthFirst, NodeUserData, false >::CallbackFn call): Performs a depth-first (DFS) traversal of a node.
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.
useCount(T *ptr) noexcept: Helper utility to access the number of different instances referencing the given object.
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 .
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.
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 .
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
kInvalidNodeIndexInTopology: Constant to denote an INode has not been assigned an index in an ITopology .