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  }