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