| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // package arena_context -- контекст арены
- package arena_context
- import (
- "context"
- "wartank/pkg/alias"
- "wartank/pkg/arena/arena_context/arena_state"
- "wartank/pkg/components/kernel/logger"
- "wartank/pkg/components/web_log"
- "wartank/pkg/types"
- )
- // АренаКонтекст -- контекст арены
- type АренаКонтекст struct {
- бот types.ИБот
- аренаИмя alias.АренаИмя
- кнт context.Context
- фнОтмена func()
- состояние types.ИАренаСостояние
- вЛог types.ИВебЛог
- лог types.ИЛоггер
- }
- // НовАренаКонтекст -- возвращает новый контекст арены
- func НовАренаКонтекст(бот types.ИБот, сценаИмя alias.АренаИмя) *АренаКонтекст {
- лог := logger.НовЛоггер("АренаКонтекст " + string(сценаИмя))
- лог.Инфо("НовАренаКонтекст() " + string(сценаИмя) + "\n")
- лог.Проверить(бот != nil, "НовАренаКонтекст(): ИБот==nil")
- лог.Проверить(сценаИмя != "", "НовАренаКонтекст(): сценаИмя не задано")
- кнт, фнОтмена := context.WithCancel(бот.Контекст())
- сам := &АренаКонтекст{
- бот: бот,
- аренаИмя: сценаИмя,
- кнт: кнт,
- фнОтмена: фнОтмена,
- состояние: arena_state.НовАренаСостояние(),
- вЛог: web_log.НовВебЛог(true),
- лог: лог,
- }
- _ = types.ИАренаКонтекст(сам)
- return сам
- }
- // Лог -- возвращает лог арены
- func (сам *АренаКонтекст) ВебЛог() types.ИВебЛог {
- return сам.вЛог
- }
- // АренаСостояние -- состояние арены
- func (сам *АренаКонтекст) АренаСостояние() types.ИАренаСостояние {
- return сам.состояние
- }
- // Отмена -- отменяет контекст арены
- func (сам *АренаКонтекст) Отмена() {
- сам.фнОтмена()
- }
- // Кнт -- возвращает контекст арены
- func (сам *АренаКонтекст) Контекст() context.Context {
- return сам.кнт
- }
- // Имя -- возвращает имя арены
- func (сам *АренаКонтекст) Имя() alias.АренаИмя {
- return сам.аренаИмя
- }
- // Бот -- возвращает бота сцены
- func (сам *АренаКонтекст) Бот() types.ИБот {
- return сам.бот
- }
|