bus

package
v4.3.0 Latest Latest
Warning

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

Go to latest
Published: Dec 25, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

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 any, 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)

	// 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

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