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 }