go-hep.org/x/hep@v0.38.1/fwk/internal/fwktest/task3.go (about) 1 // Copyright ©2017 The go-hep Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package fwktest 6 7 import ( 8 "reflect" 9 10 "go-hep.org/x/hep/fwk" 11 ) 12 13 type task3 struct { 14 fwk.TaskBase 15 16 parts string 17 } 18 19 func (tsk *task3) Configure(ctx fwk.Context) error { 20 var err error 21 msg := ctx.Msg() 22 msg.Infof("configure...\n") 23 24 err = tsk.DeclOutPort(tsk.parts, reflect.TypeOf([]int{})) 25 if err != nil { 26 return err 27 } 28 29 msg.Infof("configure... [done]\n") 30 return err 31 } 32 33 func (tsk *task3) StartTask(ctx fwk.Context) error { 34 msg := ctx.Msg() 35 msg.Infof("start...\n") 36 return nil 37 } 38 39 func (tsk *task3) StopTask(ctx fwk.Context) error { 40 msg := ctx.Msg() 41 msg.Infof("stop...\n") 42 return nil 43 } 44 45 func (tsk *task3) Process(ctx fwk.Context) error { 46 msg := ctx.Msg() 47 msg.Infof("proc...\n") 48 store := ctx.Store() 49 50 parts := make([]int, 0) 51 err := store.Put(tsk.parts, parts) 52 if err != nil { 53 return err 54 } 55 56 return nil 57 } 58 59 func init() { 60 fwk.Register(reflect.TypeOf(task3{}), 61 func(typ, name string, mgr fwk.App) (fwk.Component, error) { 62 var err error 63 tsk := &task3{ 64 TaskBase: fwk.NewTask(typ, name, mgr), 65 parts: "/fads/test/StableParticles", 66 } 67 err = tsk.DeclProp("Output", &tsk.parts) 68 if err != nil { 69 return nil, err 70 } 71 72 return tsk, err 73 }, 74 ) 75 }