Documentation
¶
Index ¶
- type Err
- type Error
- func (e *Error) DatabusInternalError(code uint8, err error) Err
- func (e *Error) DatabusNotSubscribersForType(code uint8, typeName string) Err
- func (e *Error) DatabusObjectIsNil(code uint8) Err
- func (e *Error) DatabusPanicException(code uint8, err any, stack []byte) Err
- func (e *Error) DatabusPoolInternalError(code uint8) Err
- func (e *Error) DatabusRecursivePointer(code uint8, pointer string) Err
- func (e *Error) DatabusSubscribeNotFound(code uint8, databuserName string) Err
- type Essence
- type Interface
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Err ¶
type Err interface { Anchor() error // Якорь, по которому можно сравнивать две ошибки между собой. Code() uint8 // Код ошибки. Error() string // Сообщение об ошибке или шаблон сообщения об ошибке. }
Err Интерфейс ошибки приложения.
type Error ¶
type Error struct{}
Error Объект-одиночка со списком ошибок которые можно сравнивать по якорю через '=='.
func (*Error) DatabusInternalError ¶
DatabusInternalError Внутренняя ошибка шины данных: ...
func (*Error) DatabusNotSubscribersForType ¶
DatabusNotSubscribersForType Отсутствуют потребители данных для типа данных: ...
func (*Error) DatabusObjectIsNil ¶
DatabusObjectIsNil Передан nil объект.
func (*Error) DatabusPanicException ¶
DatabusPanicException Работа с подпиской потребителя, в шине данных, прервана паникой: ... ....
func (*Error) DatabusPoolInternalError ¶
DatabusPoolInternalError Бассейн объектов вернул не корректный объект.
func (*Error) DatabusRecursivePointer ¶
DatabusRecursivePointer Не возможно определить тип рекурсивного указателя: ...
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 - Флаг отладки.