| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package bus_spec
- import (
- "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) core_spec.IResult[core_spec.EBool]
- // SendRequest -- выполняет запрос по указанному топику
- SendRequest(topic bus_ent.ITopicFix, binReq []byte) core_spec.IResult[[]byte]
- // Unregister -- удаляет единственный обработчик с единственного топика
- Unregister(IBusHandlerServe)
- }
|