|
|
@@ -1,36 +0,0 @@
|
|
|
-package loader
|
|
|
-
|
|
|
-import (
|
|
|
- "errors"
|
|
|
- "v2ray.com/core/common"
|
|
|
-)
|
|
|
-
|
|
|
-var (
|
|
|
- ErrUnknownConfigID = errors.New("Unknown config ID.")
|
|
|
-)
|
|
|
-
|
|
|
-type ConfigCreator func() interface{}
|
|
|
-
|
|
|
-type ConfigCreatorCache map[string]ConfigCreator
|
|
|
-
|
|
|
-func (this ConfigCreatorCache) RegisterCreator(id string, creator ConfigCreator) error {
|
|
|
- if _, found := this[id]; found {
|
|
|
- return common.ErrDuplicatedName
|
|
|
- }
|
|
|
-
|
|
|
- this[id] = creator
|
|
|
- return nil
|
|
|
-}
|
|
|
-
|
|
|
-func (this ConfigCreatorCache) CreateConfig(id string) (interface{}, error) {
|
|
|
- creator, found := this[id]
|
|
|
- if !found {
|
|
|
- return nil, ErrUnknownConfigID
|
|
|
- }
|
|
|
- return creator(), nil
|
|
|
-}
|
|
|
-
|
|
|
-type ConfigLoader interface {
|
|
|
- Load([]byte) (interface{}, string, error)
|
|
|
- LoadWithID([]byte, string) (interface{}, error)
|
|
|
-}
|