Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DependencyManager ¶
type DependencyManager interface { // AddNode adds a node to the dependency manager. AddNode(name string) // GetNode gets a dependency node registered with the dependency manager. GetNode(name string) (*DependencyNode, error) // AddDependency adds a dependency between a depender and and a dependee. // The depender will hold off the dependerStage until the dependee completes dependeeStage. // This effectively makes the dependerStage to be start only after the dependeeStage finishes. AddDependency(depender string, dependerStage types.WaitForStage, dependee string, dependeeStage types.WaitForStage) error // CheckAcyclicity checks if dependencies contain cycles. CheckAcyclicity() error // String returns a string representation of dependencies recorded with dependency manager. String() string }
func NewDependencyManager ¶
func NewDependencyManager() DependencyManager
NewDependencyManager constructor.
type DependencyNode ¶ added in v0.51.0
type DependencyNode struct {
// contains filtered or unexported fields
}
DependencyNode is the representation of a node in the dependency concept.
func (*DependencyNode) Done ¶ added in v0.51.0
func (d *DependencyNode) Done(p types.WaitForStage)
SignalDone is called by a node that has finished all tasks for the provided stage. The dependent nodes will be "notified" that an additional (if multiple exist) dependency is satisfied.
func (*DependencyNode) EnterStage ¶ added in v0.51.0
func (d *DependencyNode) EnterStage(p types.WaitForStage)
EnterStage is called by a node that is meant to enter the specified stage. The call will be blocked until all dependencies for the node to enter the stage are met.
func (*DependencyNode) MustWait ¶ added in v0.51.0
func (d *DependencyNode) MustWait(state types.WaitForStage) bool
MustWait returns true if the node needs to wait for the given stage, because dependers do exist.
Click to show internal directories.
Click to hide internal directories.