Documentation ¶
Overview ¶
Package ecarule defines GoAbU ECA rules.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action struct { // Assignment is a simple assignment to Resource's variable. The expression contains only local resources. Assignment *ast.Assignment // Resource is the name of the resource in the L-value of Assignment. Resource string }
Action groups an assignment with the name of the involved resource.
type LocalTask ¶ added in v0.5.0
type LocalTask struct { // Condition is an expression with boolean result indicating whether the activated rule is to be evaluated. Condition *ast.Expression // Actions is a list of assignments where only local resources can appear. Actions []Action }
LocalTask models a local task allowed to modify only local resources.
type Parser ¶ added in v0.4.0
type Parser interface { // Parse parses a series of GoAbU rules. Parse(...string) ([]Rule, []error) // ParseExpressions parses a series of local expressions. ParseExpressions(...string) ([]*ast.Expression, []error) // ParseActions parses a series of local actions. ParseActions(string) ([]Action, []error) // ParseRemoteTasks parses a series of received tasks into local tasks that can be executed. ParseRemoteTasks(map[string]string, ...RemoteTask) ([]LocalTask, []error) }
Parser is the interface implemented by parsers of GoAbU rules.
type RemoteTask ¶ added in v0.5.0
type RemoteTask struct { // Condition encodes the rule's condition. Condition string // Actions encodes the actions that are to be performed. Actions []string // RemoteResources contains all the names of the remote resources of the task. RemoteResources []string // LocalResources contains all the names of the local resources of the task. LocalResources []string }
RemoteTask models a remote task that can update the resources of the other nodes. In remote tasks, remote resources are prefixed with "this." while the local resources are prefixed with "ext.".
type Rule ¶
type Rule struct { // Name specifies the rule's name. Name string // Events is a list of resource names. The rule is activated when any of the listed resources changes its value. Events []string // LocalTasks contains the rule's local tasks that can modify only local resources when the condition matches. LocalTasks []LocalTask // RemoteTasks contains the rule's remote tasks that modify the resources of the other nodes matching the condition. RemoteTasks []RemoteTask }
Rule models a GoAbU (Event-Condition-Action) rule.
type RuleDict ¶
func MakeRuleDict ¶
func MakeRuleDict() RuleDict
Click to show internal directories.
Click to hide internal directories.