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 }