高级排程
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.0 KiB

// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
package rpc
import (
"LAPP_AS/container"
"reflect"
)
type RouteManager struct {
componentContainer container.ComponentContainer
serviceRouteManagers []*ServiceRouteManager
}
func NewRouteManager(componentContainer container.ComponentContainer) *RouteManager {
return &RouteManager{componentContainer, make([]*ServiceRouteManager, 0, 100)}
}
func (manager *RouteManager) RegisterService(factory interface{}) *ServiceRouteManager {
return manager.RegisterRoute(reflect.ValueOf(factory).Type().Out(0))
}
func (manager *RouteManager) RegisterRoute(serviceType reflect.Type) *ServiceRouteManager {
serviceRouteManager := NewServiceRouteManager(manager.componentContainer, serviceType)
manager.serviceRouteManagers = append(manager.serviceRouteManagers, serviceRouteManager)
return serviceRouteManager
}
func (manager *RouteManager) ServiceRouteManagers() []*ServiceRouteManager {
return manager.serviceRouteManagers
}