Sage Modeling and Simulation Library

Highpoint.Sage.Graphs Namespace

Classes


  Class Description
Public class ChannelMonitor
Public class ConditionalBranchManager
A conditional branch manager is affiliated with an edge's post-vertex. It stores one or more conditions and the edge channels associated with each. A default condition causes the null-channeled outbound edge (or edges) to fire, and until we evaluate expressions, this is the only channel that will actually fire. Statics on the class are used to establish and remove branch constructs in the SOM.

Since we do not evaluate expressions, this manager will assume that the first condition and target(s) provisioned are to be the default.

Public class CountedBranchManager
The CountedBranchManager fires one channel a specified number of times, and then fires another channel a specified number of times, etc. It then repeats as necessary. This is useful in looping & branching - the edge firing manager will fire the loopback edge a number of times followed by the shunt or pass-forward edge.
Public class CriticalPathAnalyst<(Of <(<'T>)>)>
An engine for determining critical paths through a directed acyclic graph (DAG).
Public class DAGCycleChecker
A DAGCycleChecker walks a Directed Acyclic Graph, depth-first, looking for cycles, which it detects through the repeated encountering of a given vertex along a given path. After evaluating the DAG, it presents a collection of errors (the Errors field) in the DAG. The errors are instances of DAGStructureError, which implements IModelError, and describes either the first, or all cycles in the network of edges underneath the root edge.
Public class DagDeadlockChecker
A DAGDeadlockChecker walks a Directed Acyclic Graph, depth-first, looking for deadlocks, which it detects through the repeated encountering of a given vertex along a given path. After evaluating the DAG, it presents a collection of errors (the Errors field) in the DAG. The errors are instances of DAGStructureError, which implements IModelError, and describes either the first, or all deadlocks in the network of edges underneath the root edge.
Public class DagStructureError
This is a class that characterizes in an instance of IModelError, a structural error in a DAG.
Public class Edge
An edge in a graph is an executional path between two vertices. An edge will have a preVertex and a postVertex, and entail some (possibly zero) duration and procedural implementation between the satisfaction of its preVertex and that of its postVertex.
Public class FlowNode<(Of <(<'T>)>)>
Public class Ligature
A Ligature is an edge that connects nodes, but unlike a task, has no duration. It is used only to model dependencies such as when two predecessor tasks must complete before a successor task is allowed to commence - the finish vertices of the two predecessor tasks would be connected to the start vertex of the successor task.
Public class MultiChannelEdgeReceiptManager
Public class PmData
PMData is Post-Mortem data, data that indicates which vertices and edges have fired in a particular graph execution. It does not exist in a non- debug build.
Public class StructureChangeTypeSvc
A class that holds a collection of static methods which provide abstraced data about StructureChangeTypes.
Public class SynchronizerSorter
Public class UtilityReferenceInUseException
Thrown when a UtilityReference is being set, but is already in use. A UtilityReference is a reference that can be used by whomever needs to do so, for short periods. The cloning mechanism, for example, uses it during cloning.
Public class Vertex
Public class VertexEarliestTimeThresholder
When attached to a vertex in a graph, this object ensures that the vertex does not fire before a specified simulation time.
Public class VertexSynchronizer

Interfaces


  Interface Description
Public interface ConditionalBranchManager..::..IBranchScenario
Public interface ICriticalPathTimingData
Public interface IEdge
Implemented by an object that is a participant in a directed graph. Edges may be hierarchical, meaning that an edge may have child edges that are executed as a part of its own execution.
Public interface IEdgeFiringManager
Implemented by an object that is responsible for deciding when to fire one or more of a group of edges. Edge firing managers are typically associated with a vertex, and when the vertex thinks that an edge should be fired (say, because all predecessor edges have completed), it will advise the Edge Firing Manager to fire the appropriate edges.
Public interface IEdgeReceiptManager
Summary description for IEdgeReceiptManager.
Public interface IPartOfGraphStructure
Implemented by an object that is a part of a graph structure.
Public interface IStatefulEdge
Implemented by any edge that modifies the state of its graphContext.
Public interface IVertex

Delegates


  Delegate Description
Public delegate EdgeEvent
An event that pertains to an edge within an execution (graph) context, therefore usually referring to a dynamic event such as commencement or completion of an edge.
Public delegate EdgeExecutionCompletionSignaler
An EdgeExecutionSignaler is called by the code in an edge's application code to signify that it has completed execution.
Public delegate EdgeExecutionDelegate
Implemented by a method that is to contain application code. It is called by the graph when the edge's turn comes to execute application code.
Public delegate StaticEdgeEvent
An event that pertains to an edge irrespective of the execution (graph) context, therefore usually referring to a structural occurrence.
Public delegate StructureChangeHandler
Implemented by events that are fired when graph structure changes.
Public delegate TriggerDelegate
Public delegate VertexEvent

Enumerations


  Enumeration Description
Public enumeration StructureChangeType
An enumeration, the members of which describe types of structure change.
Public enumeration Vertex..::..WhichVertex