Files
obitools4/cmd/test/main.go

47 lines
965 B
Go
Raw Normal View History

2022-01-13 23:27:39 +01:00
package main
import (
"fmt"
2022-01-13 23:27:39 +01:00
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiblackboard"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
)
func MakeCounter(n int) func(*obiblackboard.Task) *obiblackboard.Task {
count := obiutils.AtomicCounter()
r1 := func(task *obiblackboard.Task) *obiblackboard.Task {
val := count()
if val < n {
nt := task.GetNext()
nt.Body = val
return nt
}
return nil
}
2022-01-13 23:27:39 +01:00
return r1
}
2023-02-01 08:14:29 +01:00
func r2(task *obiblackboard.Task) *obiblackboard.Task {
fmt.Printf("value : %v\n", task.Body)
return obiblackboard.NewInitialTask()
}
2023-02-01 08:14:29 +01:00
func rmul(task *obiblackboard.Task) *obiblackboard.Task {
nt := task.GetNext()
nt.Body = task.Body.(int) * 2
return nt
}
2023-02-01 08:14:29 +01:00
func main() {
2022-03-07 16:37:21 +01:00
black := obiblackboard.NewBlackBoard(20)
2022-03-07 16:37:21 +01:00
black.RegisterRunner("todisplay", "initial", r2)
black.RegisterRunner("multiply", "todisplay", rmul)
black.RegisterRunner("initial", "multiply", MakeCounter(1000))
2022-03-07 16:37:21 +01:00
black.Run()
2022-01-13 23:27:39 +01:00
}