| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package static_param
- import (
- "fmt"
- "sync"
- "wartank/pkg/types"
- )
- /*
- Исходник предоставляет единичный статичный параметр статистики
- танка. Проверяет присваиваемые значения.
- Потокобезопасно.
- */
- // СтатПарам -- потокобезопасный параметр танка
- type СтатПарам struct {
- имя string // Имя параметра
- знач int // Значение параметра
- блок sync.RWMutex
- }
- // НовСтатПарам -- возвращает новый *СтатПарам
- func НовСтатПарам(имя string) (*СтатПарам, error) {
- if имя == "" {
- return nil, fmt.Errorf("НовСтатПарам(): name is empty")
- }
- сам := &СтатПарам{
- имя: имя,
- }
- _ = types.ИСтатПарам(сам)
- return сам, nil
- }
- // Уст -- устанавливает значение параметра
- func (sf *СтатПарам) Уст(val int) {
- sf.блок.Lock()
- defer sf.блок.Unlock()
- sf.знач = val
- }
- // Получ -- значение хранимого параметра
- func (sf *СтатПарам) Получ() int {
- sf.блок.RLock()
- defer sf.блок.RUnlock()
- return sf.знач
- }
- // Имя -- возвращает имя хранимого параметра
- func (sf *СтатПарам) Имя() string {
- sf.блок.RLock()
- defer sf.блок.RUnlock()
- return sf.имя
- }
|