mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
86 lines
1.7 KiB
Go
86 lines
1.7 KiB
Go
package service
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"reflect"
|
|
"strings"
|
|
)
|
|
|
|
type MethodInfo struct {
|
|
Fun reflect.Value
|
|
ParamList []reflect.Value
|
|
types reflect.Type
|
|
}
|
|
|
|
type IService interface {
|
|
Init(Iservice IService) error
|
|
OnInit() error
|
|
OnRun() bool
|
|
OnFetchService(iservice IService) error
|
|
OnSetupService(iservice IService) //其他服务被安装
|
|
OnRemoveService(iservice IService) //其他服务被安装
|
|
|
|
GetServiceName() string
|
|
SetServiceName(serviceName string) bool
|
|
GetServiceId() int
|
|
|
|
GetStatus() int
|
|
IsInit() bool
|
|
}
|
|
|
|
type BaseService struct {
|
|
BaseModule
|
|
|
|
serviceid int
|
|
servicename string
|
|
Status int
|
|
}
|
|
|
|
func (slf *BaseService) GetServiceId() int {
|
|
return slf.serviceid
|
|
}
|
|
|
|
func (slf *BaseService) GetServiceName() string {
|
|
return slf.servicename
|
|
}
|
|
|
|
func (slf *BaseService) SetServiceName(serviceName string) bool {
|
|
slf.servicename = serviceName
|
|
return true
|
|
}
|
|
|
|
func (slf *BaseService) GetStatus() int {
|
|
return slf.Status
|
|
}
|
|
|
|
func (slf *BaseService) OnFetchService(iservice IService) error {
|
|
return nil
|
|
}
|
|
|
|
func (slf *BaseService) OnSetupService(iservice IService) {
|
|
}
|
|
|
|
func (slf *BaseService) OnRemoveService(iservice IService) {
|
|
}
|
|
|
|
func (slf *BaseService) Init(iservice IService) error {
|
|
slf.ownerService = iservice
|
|
|
|
if iservice.GetServiceName() == "" {
|
|
slf.servicename = fmt.Sprintf("%T", iservice)
|
|
parts := strings.Split(slf.servicename, ".")
|
|
if len(parts) != 2 {
|
|
GetLogger().Printf(LEVER_ERROR, "BaseService.Init: service name is error: %q", slf.servicename)
|
|
err := fmt.Errorf("BaseService.Init: service name is error: %q", slf.servicename)
|
|
return err
|
|
}
|
|
|
|
slf.servicename = parts[1]
|
|
}
|
|
|
|
slf.serviceid = InstanceServiceMgr().GenServiceID()
|
|
|
|
return nil
|
|
}
|