log_dict_topic.go 830 B

1234567891011121314151617181920212223242526272829
  1. // package log_dict_topic -- хранитель топиков для логирования.
  2. package log_dict_topic
  3. import (
  4. "sync"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_ent/topic"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_spec"
  8. )
  9. type LogDictTopic struct {
  10. sync.RWMutex
  11. dict map[topic.ATopic]struct{}
  12. client bus_spec.IBusClient
  13. }
  14. // NewLogDictTopic -- возвращает новый словарь топиков для логирования.
  15. func NewLogDictTopic(clientBus bus_spec.IBusClient) *lev0.Result[*LogDictTopic] {
  16. if clientBus == nil {
  17. err := lev0.LetErr("NewLogDictTopic(): clientBus == nil")
  18. return lev0.ResErr[*LogDictTopic](err)
  19. }
  20. sf := &LogDictTopic{
  21. dict: map[topic.ATopic]struct{}{},
  22. client: clientBus,
  23. }
  24. return lev0.ResOk(sf)
  25. }