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