Documentation ¶
Index ¶
Constants ¶
View Source
const ( // XStatusUp XNode is up XStatusUp XStatus = "up" // XStatusDown XNode is down XStatusDown = "down" // XStatusDegraded XNode parent is down XStatusDegraded = "degraded" )
Variables ¶
View Source
var ( // ErrWalkAbort error returned to stop tree walk ErrWalkAbort = errors.New("abort XTree walk") // ErrXNodeNotFound error returned when XNode is not found ErrXNodeNotFound = errors.New("XNode not found in the XTree") )
Functions ¶
This section is empty.
Types ¶
type XNode ¶
type XNode interface { // UUID unique identifier for this node. UUID() string // Equals returns true if node is equal to this XNode Equals(node XNode) bool // Parents of this node, a node can be present multiple times in the tree. Parents() []XNode // IsParent return true if this node is parent of specified XNode IsParent(node XNode) bool // Children list of child XNodes Children() []XNode // AddChildren adds list of nodes to the list of children AddChildren(node []XNode) // AddParent to the list of parents. AddParent(node XNode) // RemoveParent from the list of parents RemoveParent(node XNode) error // RemoveChild from the list of children RemoveChild(node XNode) error // AddLink adds a link to another XNode AddLink(link XNode) // RemoveLink to XNode RemoveLink(link XNode) error // HasLink returns true if this node has a link to specified XNode HasLink(link XNode) bool // Walk tree beginning from this XNode Walk(cb XNodeIteratorCB) error // WalkToRoot iterate to root WalkToRoot(cb XNodeIteratorCB) error // MarkDown mark this XNode as down MarkDown() // MarkUp mark this XNode as up. MarkUp() // Status return status of xnode evaluating status of the parents as well. Status() XStatus // LocalStatus return local status of this XNode LocalStatus() XStatus // Data returns the user data stored in this xnode Data() interface{} // contains filtered or unexported methods }
XNode designates a node in XTree
type XNodeIteratorCB ¶
XNodeIteratorCB iterator callback for tree walk. If an error is returned, the walk is aborted.
type XTree ¶
type XTree interface { // Root of the xtree Root() XNode // Find returns XNode with matching UUID Find(uuid string) (XNode, error) // FindLinked returns XNodes that are linked to specified link. FindLinked(link XNode) ([]XNode, error) // SetLink links link to specified XNodes. It removes link from nodes // that are not in the linked list. SetLink(link XNode, linked []XNode) error // RemoveLink from all linked nodes. RemoveLink(link XNode) error // Insert XNode into the tree Insert(node XNode, parentUUIDs []string) error // Remove XNode and its children Remove(node XNode) error }
XTree represents a n-ary tree or XNodes
Click to show internal directories.
Click to hide internal directories.