| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // package stat_param -- отдельный параметр статистики
- package stat_param
- import (
- "fmt"
- "sync"
- . "gitp78su.ipnodns.ru/svi/kern"
- . "gitp78su.ipnodns.ru/svi/kern/kc/helpers"
- . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
- . "wartank/app/lev0/types"
- )
- // СтатПарам -- потокобезопасная статистика
- type статПарам struct {
- sync.RWMutex
- имя string // Имя параметра
- знач int // Значение параметра
- лог ILogBuf
- }
- // НовСтатПарам1 -- возвращает новую статистику
- func НовСтатПарам1(имя string) ИСтатПарам {
- Hassert(имя != "", "НовСтатПарам(): имя параметра пустое\n")
- сам := &статПарам{
- имя: имя,
- лог: NewLogBuf(),
- }
- сам.лог.Info("НовСтатПарам(%s)\n", имя)
- return сам
- }
- // ЗначСтр -- строковое представление значение параметра
- func (сам *статПарам) ЗначСтр() string {
- сам.RLock()
- defer сам.RUnlock()
- return fmt.Sprint(сам.знач)
- }
- // Уст -- устанавливает значение параметра
- func (сам *статПарам) Уст(val int) {
- сам.Lock()
- defer сам.Unlock()
- сам.знач = val
- }
- // Получ -- значение хранимого параметра
- func (сам *статПарам) Получ() int {
- сам.RLock()
- defer сам.RUnlock()
- return сам.знач
- }
- // Имя -- возвращает имя хранимого параметра
- func (сам *статПарам) Имя() string {
- сам.RLock()
- defer сам.RUnlock()
- return сам.имя
- }
|