Documentation
¶
Overview ¶
Package bus
Package bus ¶
Package bus ¶
Package bus ¶
Package bus ¶
Package bus ¶
Package bus ¶
Package bus ¶
Package bus
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 interface{}, 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)
// PublishSync Передача в шину данных объекта данных в синхронном режиме, функция блокируется до окончания передачи
// данных всем зарегистрированным потребителям, подписанным на получение передаваемого типа данных.
// Функция вернёт ошибку, если:
// - тип переданных данных не зарегистрирован ни одним потребителем данных, то есть некому передать данные.
// - тип данных является пустым интерфейсом или nil.
// - ошибку вернул потребитель данных.
PublishSync(data interface{}) (ret []interface{}, errs []error)
// PublishSyncWithContext Передача в шину данных объекта данных в синхронном режиме с контекстом,
// функция блокируется до окончания передачи данных всем зарегистрированным потребителям, подписанным на получение
// передаваемого типа данных.
// Прервать ожидание ответа можно через контекст.
// Функция вернёт ошибку, если:
// - тип переданных данных не зарегистрирован ни одним потребителем данных, то есть некому передать данные.
// - тип данных является пустым интерфейсом или nil.
// - ошибку вернул потребитель данных.
// - произошло прерывание ожидания ответа через контекст.
PublishSyncWithContext(ctx context.Context, data interface{}) (ret []interface{}, errs []error)
// PublishSyncWithTimeout Передача в шину данных объекта данных в синхронном режиме с таймаутом,
// функция блокируется до окончания передачи данных всем зарегистрированным потребителям, подписанным на получение
// передаваемого типа данных.
// Ожидание автоматически прервётся через время указанное в timeout.
// Функция вернёт ошибку, если:
// - тип переданных данных не зарегистрирован ни одним потребителем данных, то есть некому передать данные.
// - тип данных является пустым интерфейсом или nil.
// - ошибку вернул потребитель данных.
// - произошло прерывание ожидания ответа по таймауту.
PublishSyncWithTimeout(timeout time.Duration, data interface{}) (ret []interface{}, errs []error)
// PublishAsync Передача в шину данных объекта данных в асинхронном режиме.
// Функция вернёт ошибку, если:
// - тип переданных данных не зарегистрирован ни одним потребителем данных, то есть некому передать данные.
// - тип данных является пустым интерфейсом или nil.
PublishAsync(data interface{}) (err error)
// Gist Интерфейс к публичным служебным методам.
Gist() Essence
// Errors Все ошибки известного состояния, которые может вернуть приложение или функция.
Errors() *Error
}
Interface Интерфейс объекта сущности.
func New ¶
New Конструктор объекта пакета, возвращает интерфейс Interface. bufferLength - Размер буфера шины данных, если указано 0 или отрицательное число, используется размер по умолчанию,
равный 1000000 сообщений.
workerCount - Количество запускаемых обработчиков сообщений шины данных. Если указано 0 или отрицательное число,
используется значение по умолчанию, равное 1000 обработчиков.
isDebug - Флаг отладки.