| 123456789101112131415161718192021222324252627282930313233343536 |
- // package bus_spec -- спецификации для работы с шиной
- package bus_spec
- import (
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev1/log_buf"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_ent"
- )
- // IKernelBus -- шина сообщений ядра.
- //
- // Публикация и запрос требуют параметров на _передачу_.
- // Подписка и обслуживание входящих запросов требует _обработчиков_.
- type IKernelBus interface {
- // Publish -- публикует сообщение в шину
- Publish(topic bus_ent.ITopicFix, binMsg []byte) core_spec.IResult[core_spec.EBool]
- // SendRequest -- выполняет запрос по указанному топику
- SendRequest(topic bus_ent.ITopicFix, binReq []byte) core_spec.IResult[[]byte]
- // Subscribe -- подписывает обработчик на топик
- Subscribe(IBusHandlerSubscribe) core_spec.IResult[core_spec.EBool]
- // Unsubscribe -- отписывается от топика
- Unsubscribe(IBusHandlerSubscribe)
- // RegisterServe -- Регистрирует обработчик на обслуживание входящих запросов
- RegisterServe(IBusHandlerServe) core_spec.IResult[core_spec.EBool]
- // IsWork -- возвращает признак работы шины
- IsWork() core_spec.EBool
- // Log -- возвращает буферный лог
- Log() log_buf.ILogBuf
- }
- // IBusClient -- интерфейс клиента к шину.
- type IBusClient interface {
- IKernelBus
- }
|