interfaces.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package mhayaDataConfig
  2. type (
  3. // IDataConfig 数据配置接口
  4. IDataConfig interface {
  5. Register(configFile ...IConfig) // 注册映射文件
  6. GetBytes(configName string) (data []byte, found bool) // 获取原始的数据
  7. GetParser() IDataParser // 当前参数配置的数据格式解析器
  8. GetDataSource() IDataSource // 当前参数配置的获取数据源
  9. }
  10. // IDataParser 数据格式解析接口
  11. IDataParser interface {
  12. TypeName() string // 注册名称
  13. Unmarshal(text []byte, v interface{}) error // 文件格式解析器
  14. }
  15. // IDataSource 配置文件数据源
  16. IDataSource interface {
  17. Name() string // 数据源名称
  18. Init(dataConfig IDataConfig) // 函数初始化时
  19. ReadBytes(configName string) (data []byte, error error) // 获取数据流
  20. OnChange(fn ConfigChangeFn) // 数据变更时
  21. Stop() // 停止
  22. }
  23. // ConfigChangeFn 数据变更时触发该函数
  24. ConfigChangeFn func(configName string, data []byte)
  25. // IConfig 配置接口
  26. IConfig interface {
  27. Name() string // 配置名称
  28. Init() // 结构体初始化
  29. OnLoad(maps interface{}, reload bool) (int, error) // 配置序列化后,执行该函数 (size,error)
  30. OnAfterLoad(reload bool) // 所有配置加载后再执行该函数
  31. }
  32. )