| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package sectionmode
- import (
- "sync"
- )
- /*
- Режим работы секции
- */
- // SectionMode -- режим работы секции
- type SectionMode struct {
- val string // Имя режима
- work string // Имя работы
- block sync.RWMutex
- }
- // NewSectionMode -- возвращает новый *SectionMode
- func NewSectionMode() *SectionMode {
- return &SectionMode{
- val: "start",
- }
- }
- // Set -- устанавливает режим работы
- func (sf *SectionMode) Set(val string) {
- sf.block.Lock()
- defer sf.block.Unlock()
- sf.val = val
- }
- // Get -- возвращает хранимый режим работы
- func (sf *SectionMode) Get() string {
- sf.block.RLock()
- defer sf.block.RUnlock()
- return sf.val
- }
- // Work -- возвращает хранимое имя работы
- func (sf *SectionMode) Work() string {
- sf.block.RLock()
- defer sf.block.RUnlock()
- return sf.work
- }
- // WorkSet -- устанавливает хранимое имя работы
- func (sf *SectionMode) WorkSet(work string) {
- sf.block.Lock()
- defer sf.block.Unlock()
- sf.work = work
- }
|