1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package mockkernel
- import (
- "context"
- "wartank/pkg/components/kernel/wgname"
- "wartank/pkg/types"
- )
- /*
- Мок-объект для имитации объекта ядра приложения.
- Нужен из-за возникающей циклической ссылки.
- ВНИМАНИЕ!!!!!
- Slog_ присваивать руками !!!!
- */
- // MockKernel -- мок-объект ядра приложения
- type MockKernel struct {
- ctxBg context.Context // Глобальный неотменяемый контекст приложения
- ctxApp context.Context // глобальный отменяемый контекст приложения
- fnCancel func() // Функия глобальной отмены контекста приложения
- wg *wgname.WgName // Объект группового ожидания
- Slog_ types.ISlog // Двойной логер
- }
- // NewMockKernel -- возвращает новый *MockKernel
- func NewMockKernel() *MockKernel {
- sf := &MockKernel{
- ctxBg: context.Background(),
- wg: wgname.NewWgName(),
- }
- sf.ctxApp, sf.fnCancel = context.WithCancel(sf.ctxBg)
- return sf
- }
- // Wg -- возвращает объект групповой сихнронизации
- func (sf *MockKernel) Wg() types.IWgName {
- return sf.wg
- }
- // CtxApp -- возвращает глобальный контекст приложения
- func (sf *MockKernel) CtxApp() context.Context {
- return sf.ctxApp
- }
- // Done -- возвращает канал отмены контекста приложения
- func (sf *MockKernel) Done() <-chan struct{} {
- return sf.ctxApp.Done()
- }
- // CancelApp -- отменяет глобальный контекст приложения
- func (sf *MockKernel) CancelApp() {
- // fmt._rintf("MockKernel.CancelApp()\n")
- sf.fnCancel()
- }
- // Slog -- возвращает хранимый логгер
- func (sf *MockKernel) Slog() types.ISlog {
- return sf.Slog_
- }
|