go-hep.org/x/hep@v0.38.1/fwk/internal/fwktest/svc1.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 MyInt int
    14  type MyStruct struct {
    15  	I int
    16  }
    17  
    18  type svc1 struct {
    19  	fwk.SvcBase
    20  
    21  	i MyInt
    22  	s MyStruct
    23  }
    24  
    25  func (svc *svc1) Configure(ctx fwk.Context) error {
    26  	var err error
    27  
    28  	return err
    29  }
    30  
    31  func (svc *svc1) StartSvc(ctx fwk.Context) error {
    32  	var err error
    33  	msg := ctx.Msg()
    34  	msg.Infof("-- start svc --\n")
    35  	return err
    36  }
    37  
    38  func (svc *svc1) StopSvc(ctx fwk.Context) error {
    39  	var err error
    40  	msg := ctx.Msg()
    41  	msg.Infof("-- stop svc --\n")
    42  	return err
    43  }
    44  
    45  func newsvc1(typ, name string, mgr fwk.App) (fwk.Component, error) {
    46  	var err error
    47  	svc := &svc1{
    48  		SvcBase: fwk.NewSvc(typ, name, mgr),
    49  	}
    50  
    51  	err = svc.DeclProp("Int", &svc.i)
    52  	if err != nil {
    53  		return nil, err
    54  	}
    55  
    56  	err = svc.DeclProp("Struct", &svc.s)
    57  	if err != nil {
    58  		return nil, err
    59  	}
    60  
    61  	return svc, err
    62  }
    63  
    64  func init() {
    65  	fwk.Register(reflect.TypeOf(svc1{}), newsvc1)
    66  }