cache.go 479 B

12345678910111213141516171819202122232425
  1. package json
  2. type ConfigObjectCreator func() interface{}
  3. var (
  4. configCache map[string]ConfigObjectCreator
  5. )
  6. func RegisterRouterConfig(strategy string, creator ConfigObjectCreator) error {
  7. // TODO: check strategy
  8. configCache[strategy] = creator
  9. return nil
  10. }
  11. func CreateRouterConfig(strategy string) interface{} {
  12. creator, found := configCache[strategy]
  13. if !found {
  14. return nil
  15. }
  16. return creator()
  17. }
  18. func init() {
  19. configCache = make(map[string]ConfigObjectCreator)
  20. }