// package arena_state -- состояние арены package arena_state import ( "sync" "wartank/app/lev0/alias" . "wartank/app/lev0/types" ) // СценаСостояние -- состояние сцены type АренаСостояние struct { состояниеИмя alias.ААренаСостояние // Имя режима работаИмя alias.АРаботаИмя // Имя работы режимНомер alias.АРежим block sync.RWMutex } // НовСекцияРежим -- возвращает новый *СценаРежим func НовАренаСостояние() *АренаСостояние { сам := &АренаСостояние{ состояниеИмя: "старт", } _ = ИАренаСостояние(сам) return сам } // РежимНомер -- возвращает номер режима арены func (сам *АренаСостояние) РежимНомер() alias.АРежим { сам.block.RLock() defer сам.block.RUnlock() return сам.режимНомер } // РаботаИмяУст -- устанавливает имя текущей работы арены func (сам *АренаСостояние) РаботаИмяУст(имя alias.АРаботаИмя) { сам.block.Lock() defer сам.block.Unlock() сам.работаИмя = имя } // РаботаИмя -- возвращает имя текущей работы арены func (сам *АренаСостояние) РаботаИмя() alias.АРаботаИмя { сам.block.RLock() defer сам.block.RUnlock() return сам.работаИмя } // СостояниеУст -- устанавливает состояние арены func (сам *АренаСостояние) СостояниеУст(состояние alias.ААренаСостояние) { сам.block.Lock() defer сам.block.Unlock() сам.состояниеИмя = состояние } // Состояние -- возвращает состояние арены func (сам *АренаСостояние) Состояние() alias.ААренаСостояние { сам.block.RLock() defer сам.block.RUnlock() return сам.состояниеИмя } // Работа -- возвращает хранимое имя работы арены func (сам *АренаСостояние) Работа() alias.АРаботаИмя { сам.block.RLock() defer сам.block.RUnlock() return сам.работаИмя } // РаботаУст -- устанавливает хранимое имя работы арены func (сам *АренаСостояние) РаботаУст(работаИмя alias.АРаботаИмя) { сам.block.Lock() defer сам.block.Unlock() сам.работаИмя = работаИмя }