log_dict_topic.go 800 B

123456789101112131415161718192021222324252627282930
  1. // package log_dict_topic -- хранитель топиков для логирования.
  2. package log_dict_topic
  3. import (
  4. "fmt"
  5. "sync"
  6. mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  8. mKs "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kspec"
  9. )
  10. type LogDictTopic struct {
  11. sync.RWMutex
  12. dict map[defs.Topic]bool
  13. client mKs.IBusClient
  14. }
  15. // NewLogDictTopic -- возвращает новый словарь топиков для логирования.
  16. func NewLogDictTopic(clientBus mKs.IBusClient) mL0.IResult[*LogDictTopic] {
  17. if clientBus == nil {
  18. err := fmt.Errorf("NewLogDictTopic(): clientBus == nil")
  19. return mL0.NewErr[*LogDictTopic](err)
  20. }
  21. sf := &LogDictTopic{
  22. dict: map[defs.Topic]bool{},
  23. client: clientBus,
  24. }
  25. return mL0.NewRes(sf)
  26. }