mirror of
https://github.com/eolinker/apinto
synced 2025-10-05 16:57:03 +08:00
46 lines
939 B
Go
46 lines
939 B
Go
package cache_strategy
|
|
|
|
import (
|
|
"github.com/eolinker/eosc"
|
|
"github.com/eolinker/eosc/setting"
|
|
"github.com/eolinker/eosc/utils/schema"
|
|
"reflect"
|
|
)
|
|
|
|
const Name = "strategy-cache"
|
|
|
|
var (
|
|
configType = reflect.TypeOf((*Config)(nil))
|
|
)
|
|
|
|
//Register 注册http路由驱动工厂
|
|
func Register(register eosc.IExtenderDriverRegister) {
|
|
|
|
register.RegisterExtenderDriver(Name, newFactory())
|
|
setting.RegisterSetting("strategies-cache", controller)
|
|
}
|
|
|
|
type factory struct {
|
|
render interface{}
|
|
}
|
|
|
|
func newFactory() *factory {
|
|
render, err := schema.Generate(configType, nil)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return &factory{
|
|
render: render,
|
|
}
|
|
}
|
|
|
|
func (f *factory) Render() interface{} {
|
|
return f.render
|
|
}
|
|
|
|
func (f *factory) Create(profession string, name string, label string, desc string, params map[string]interface{}) (eosc.IExtenderDriver, error) {
|
|
controller.driver = name
|
|
controller.profession = profession
|
|
return &driver{}, nil
|
|
}
|