-
Notifications
You must be signed in to change notification settings - Fork 0
/
taskbase.go
69 lines (56 loc) · 1.64 KB
/
taskbase.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package fwk
import (
"reflect"
"github.com/go-hep/fwk/fsm"
)
// TaskBase provides a base implementation for fwk.Task
type TaskBase struct {
t string
n string
mgr App
}
// NewTask creates a new TaskBase of type typ and name name,
// managed by the fwk.App mgr.
func NewTask(typ, name string, mgr App) TaskBase {
return TaskBase{
t: typ,
n: name,
mgr: mgr,
}
}
// Type returns the fully qualified type of the underlying task.
// e.g. "github.com/go-hep/fwk/testdata.task1"
func (tsk *TaskBase) Type() string {
return tsk.t
}
// Name returns the name of the underlying task.
// e.g. "my-task"
func (tsk *TaskBase) Name() string {
return tsk.n
}
// DeclInPort declares this task has an input Port with name n and type t.
func (tsk *TaskBase) DeclInPort(n string, t reflect.Type) error {
return tsk.mgr.DeclInPort(tsk, n, t)
}
// DeclOutPort declares this task has an output Port with name n and type t.
func (tsk *TaskBase) DeclOutPort(n string, t reflect.Type) error {
return tsk.mgr.DeclOutPort(tsk, n, t)
}
// DeclProp declares this task has a property named n,
// and takes a pointer to the associated value.
func (tsk *TaskBase) DeclProp(n string, ptr interface{}) error {
return tsk.mgr.DeclProp(tsk, n, ptr)
}
// SetProp sets the property name n with the value v.
func (tsk *TaskBase) SetProp(n string, v interface{}) error {
return tsk.mgr.SetProp(tsk, n, v)
}
// GetProp returns the value of the property named n.
func (tsk *TaskBase) GetProp(n string) (interface{}, error) {
return tsk.mgr.GetProp(tsk, n)
}
// FSMState returns the current state of the FSM
func (tsk *TaskBase) FSMState() fsm.State {
return tsk.mgr.FSMState()
}
// EOF