bus

package
v3.2.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package bus

Package bus

Package bus

Package bus

Package bus

Package bus

Package bus

Package bus

Package bus

Index

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 Errors

func Errors() *Error

Errors Справочник всех ошибок пакета.

func (*Error) DatabusInternalError

func (e *Error) DatabusInternalError(code uint8, err error) Err

DatabusInternalError Внутренняя ошибка шины данных: ...

func (*Error) DatabusNotSubscribersForType

func (e *Error) DatabusNotSubscribersForType(code uint8, typeName string) Err

DatabusNotSubscribersForType Отсутствуют потребители данных для типа данных: ...

func (*Error) DatabusObjectIsNil

func (e *Error) DatabusObjectIsNil(code uint8) Err

DatabusObjectIsNil Передан nil объект.

func (*Error) DatabusPanicException

func (e *Error) DatabusPanicException(code uint8, err interface{}, stack []byte) Err

DatabusPanicException Работа с подпиской потребителя, в шине данных, прервана паникой: ... ....

func (*Error) DatabusPoolInternalError

func (e *Error) DatabusPoolInternalError(code uint8) Err

DatabusPoolInternalError Бассейн объектов вернул не корректный объект.

func (*Error) DatabusRecursivePointer

func (e *Error) DatabusRecursivePointer(code uint8, pointer string) Err

DatabusRecursivePointer Не возможно определить тип рекурсивного указателя: ...

func (*Error) DatabusSubscribeNotFound

func (e *Error) DatabusSubscribeNotFound(code uint8, databuserName string) Err

DatabusSubscribeNotFound Потребитель данных ... не был подписан на шину данных.

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

func New(bufferLength int, workerCount int, isDebug bool) Interface

New Конструктор объекта пакета, возвращает интерфейс Interface. bufferLength - Размер буфера шины данных, если указано 0 или отрицательное число, используется размер по умолчанию,

равный 1000000 сообщений.

workerCount - Количество запускаемых обработчиков сообщений шины данных. Если указано 0 или отрицательное число,

используется значение по умолчанию, равное 1000 обработчиков.

isDebug - Флаг отладки.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL