| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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() types.ИЯдро {
- сам := &MockKernel{
- ctxBg: context.Background(),
- wg: wgname.NewWgName(),
- }
- сам.ctxApp, сам.fnCancel = context.WithCancel(сам.ctxBg)
- return сам
- }
- // Store -- возвращает хранилище данных
- func (сам *MockKernel) Store() types.ИХран {
- return nil
- }
- // Wg -- возвращает объект групповой сихнронизации
- func (сам *MockKernel) Wg() types.IWgName {
- return сам.wg
- }
- // CtxApp -- возвращает глобальный контекст приложения
- func (сам *MockKernel) CtxApp() context.Context {
- return сам.ctxApp
- }
- // Done -- возвращает канал отмены контекста приложения
- func (сам *MockKernel) Done() <-chan struct{} {
- return сам.ctxApp.Done()
- }
- // CancelApp -- отменяет глобальный контекст приложения
- func (сам *MockKernel) CancelApp() {
- // fmt._rintf("MockKernel.CancelApp()\n")
- сам.fnCancel()
- }
- // Slog -- возвращает хранимый логгер
- func (сам *MockKernel) Slog() types.ISlog {
- return сам.Slog_
- }
|