Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Error ¶
type Error struct {
dic.Errors
// DatabusRecursivePointer Не возможно определить тип рекурсивного указателя: ...
DatabusRecursivePointer dic.IError
// DatabusPanicException Работа с подпиской потребителя, в шине данных, прервана паникой:\n...\n...
DatabusPanicException dic.IError
// DatabusSubscribeNotFound Потребитель данных ... не был подписан на шину данных.
DatabusSubscribeNotFound dic.IError
// DatabusInternalError Внутренняя ошибка шины данных: ...
DatabusInternalError dic.IError
// DatabusNotSubscribersForType Отсутствуют потребители данных для типа данных ...
DatabusNotSubscribersForType dic.IError
// DatabusObjectIsNil Передан nil объект.
DatabusObjectIsNil dic.IError
// DatabusPoolInternalError Бассейн объектов вернул не корректный объект.
DatabusPoolInternalError dic.IError
}
Error Структура справочника ошибок.
type Essence ¶
type Essence interface {
// Debug Присвоение нового значения режима отладки.
Debug(debug bool) Essence
// WorkerStart Запуск обработчика шины данных.
WorkerStart(workerCount int) Essence
// WorkerStop Остановка обработчика шины данных с подтверждением остановки.
// Функция блокируется до подтверждения завершения потока обработчика.
WorkerStop() Essence
// Statistic Статистика работы бассейна шины данных.
// Статистика ведётся только если шина данных создана с флагом отладки New(..., isDebug=true).
// Если шина данных создана без флага отладки, статистика вернёт nil.
Statistic() *kitModulePdw.Statistic
}
Essence Служебный публичный интерфейс.
type Interface ¶
type Interface interface {
// Subscribe Регистрация потребителя данных.
// Вернётся ошибка, если:
// - потребитель данных является nil.
// - функция регистрации типов данных вернула недопустимые значения.
Subscribe(databuser kitTypes.Databuser) (err error)
// Unsubscribe Удаление потребителя данных.
// Вернётся ошибка, если:
// - потребитель данных является nil.
// - потребитель данных не регистрировался или подписка потребителя была уже удалена.
Unsubscribe(databuser kitTypes.Databuser) (err error)
// IsSubscriber Проверка, существуют ли хотя бы один потребитель для указанного типа данных.
// Функция возвращает:
// - истина - если существует хотя бы один потребитель;
// - ложь - если не существует ни одного потребителя;
IsSubscriber(data any) bool
// PublishSync Передача в шину данных объекта данных в синхронном режиме, функция блокируется до окончания передачи
// данных всем зарегистрированным потребителям, подписанным на получение передаваемого типа данных.
// Функция вернёт ошибку, если:
// - тип переданных данных не зарегистрирован ни одним потребителем данных, то есть некому передать данные.
// - тип данных является пустым интерфейсом или nil.
// - ошибку вернул потребитель данных.
PublishSync(data any) (ret []any, errs []error)
// PublishSyncWithContext Передача в шину данных объекта данных в синхронном режиме с контекстом,
// функция блокируется до окончания передачи данных всем зарегистрированным потребителям, подписанным на получение
// передаваемого типа данных.
// Прервать ожидание ответа можно через контекст.
// Функция вернёт ошибку, если:
// - тип переданных данных не зарегистрирован ни одним потребителем данных, то есть некому передать данные.
// - тип данных является пустым интерфейсом или nil.
// - ошибку вернул потребитель данных.
// - произошло прерывание ожидания ответа через контекст.
PublishSyncWithContext(ctx context.Context, data any) (ret []any, errs []error)
// PublishSyncWithTimeout Передача в шину данных объекта данных в синхронном режиме с таймаутом,
// функция блокируется до окончания передачи данных всем зарегистрированным потребителям, подписанным на получение
// передаваемого типа данных.
// Ожидание автоматически прервётся через время указанное в timeout.
// Функция вернёт ошибку, если:
// - тип переданных данных не зарегистрирован ни одним потребителем данных, то есть некому передать данные.
// - тип данных является пустым интерфейсом или nil.
// - ошибку вернул потребитель данных.
// - произошло прерывание ожидания ответа по таймауту.
PublishSyncWithTimeout(timeout time.Duration, data any) (ret []any, errs []error)
// PublishAsync Передача в шину данных объекта данных в асинхронном режиме.
// Функция вернёт ошибку, если:
// - тип переданных данных не зарегистрирован ни одним потребителем данных, то есть некому передать данные.
// - тип данных является пустым интерфейсом или nil.
PublishAsync(data any) (err error)
// Gist Интерфейс к служебным методам.
Gist() Essence
// Errors Справочник ошибок.
Errors() *Error
}
Interface Интерфейс пакета.
func New ¶
New Конструктор объекта пакета, возвращает интерфейс Interface. bufferLength - Размер буфера шины данных, если указано 0 или отрицательное число, используется размер по умолчанию,
равный 1000000 сообщений.
workerCount - Количество запускаемых обработчиков сообщений шины данных. Если указано 0 или отрицательное число,
используется значение по умолчанию, равное 1000 обработчиков.
isDebug - Флаг отладки.
Click to show internal directories.
Click to hide internal directories.