| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package bus_spec
- import (
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_ent"
- )
- // IDictSubHook -- словарь обработчиков по единственному топику.
- type IDictSubHook interface {
- // Subscribe -- подписывает обработчик
- Subscribe(IBusHandlerSubscribe)
- // Read -- все локальные обработчики читают сообщение по его приходу
- Read(binMsg []byte)
- // Unsubscribe -- отписывает обработчик
- Unsubscribe(IBusHandlerSubscribe)
- }
- // IDictTopicSub -- интерфейс к словарю обработчиков подписки на словарь топиков.
- //
- // При подписке потребителей топика может быть НЕСКОЛЬКО на КАЖДЫЙ топик.
- type IDictTopicSub interface {
- // Subscribe -- подписывает подписчиков на любой из топиков
- Subscribe(IBusHandlerSubscribe)
- // Read -- читает сообщение для всех обработчиков подписки по приходу на любой из топиков
- Read(topic bus_ent.ITopicFix, binMsg []byte)
- // Unsubscribe -- отписывает подписчиков от любого из топиков
- Unsubscribe(IBusHandlerSubscribe)
- }
- // IDictTopicServe -- интерфейс к обработчику входящих запросов на словарь топиков.
- //
- // При обслуживании входящих запросов обработчик может быть только ОДИН на КАЖДЫЙ топик.
- // Но обработчик вызывается конкурентно.
- type IDictTopicServe interface {
- // Register -- регистрирует единственный обработчик на единственный топик
- Register(IBusHandlerServe) *lev0.Result[core_spec.EBool]
- // SendRequest -- выполняет запрос по указанному топику
- SendRequest(topic bus_ent.ITopicFix, binReq []byte) *lev0.Result[[]byte]
- // Unregister -- удаляет единственный обработчик с единственного топика
- Unregister(IBusHandlerServe)
- }
|