warbot_config.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // package warbot_config -- конфиг бота для хранения в базе
  2. package warbot_config
  3. import (
  4. "encoding/json"
  5. "sync"
  6. . "wartank/app/lev0/alias"
  7. "wartank/kernel"
  8. )
  9. // ВарБотКонфиг -- конфиг бота для хранения в базе
  10. type ВарБотКонфиг struct {
  11. ЕслиАвтозапуск_ bool `json:"is_auto_run,omitempty"` // Признак автостарта при загрузке
  12. Логин_ string `json:"login"` // Логин бота
  13. Пароль_ string `json:"password"` // Пароль бота
  14. Номер_ АБотНомер `json:"number"` // Номер бота
  15. блок sync.RWMutex
  16. }
  17. // Marshall -- сериализует конфиг в JSON
  18. func (сам *ВарБотКонфиг) Marshall() []byte {
  19. binData, _ := json.Marshal(сам)
  20. return binData
  21. }
  22. // Unmarshal -- десериализует себя из байтового потока
  23. func (сам *ВарБотКонфиг) Unmarshal(binData []byte) {
  24. лог := kernel.НовЛог("ВарБотКонфиг")
  25. лог.Отладка("Unmarshal()")
  26. err := json.Unmarshal(binData, сам)
  27. лог.Паника(err != nil, "Unmarshal(): err=\n\t%v\n", err)
  28. }
  29. // Логин -- возвращает логин
  30. func (сам *ВарБотКонфиг) Логин() string {
  31. сам.блок.RLock()
  32. defer сам.блок.RUnlock()
  33. return сам.Логин_
  34. }
  35. // Номер -- возвращает номер бота
  36. func (сам *ВарБотКонфиг) Номер() АБотНомер {
  37. сам.блок.RLock()
  38. defer сам.блок.RUnlock()
  39. return сам.Номер_
  40. }