| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- syntax = "proto3";
- /*
- Файл содержит описание сервиса шины данных с необходимыми
- структурами.
- */
- package parserin;
- option go_package = "./netapi";
- // GoBus -- сервис шины данных
- service GoBus {
- // Public -- создаёт запись в открытом разделе хранилище
- rpc Public(PublicRequest) returns (DefaultResponse) {}
- // SendSync -- синхронный запрос в топик
- rpc SendSync(SyncRequest) returns (SyncResponse){}
- // Subscribe -- подписка по шаблону
- rpc Subscribe(SubscribeRequest) returns (stream SyncResponse){}
- // SubscribeBuffer -- подписка по шаблону с буфером на выход
- rpc SubscribeBuffer (BuffRequest) returns (stream BuffResponse){}
- // Get -- возвращает значения топиков по шаблону
- rpc Get(SubscribeRequest) returns (GetRequest){}
- }
- // BuffRequest -- запрос на буферизованную подписку
- message BuffRequest{
- string Sample = 1; // Шаблон топиков на подписку
- int32 MsgSumSizeLimit = 2; // Предел суммарного количества сообщений
- int32 MsgSaveSecondLimit = 3; // Предел в секундах как долго хранить буфер с момента последнего доступа
- }
- // BuffResponse -- ответ на буферизованную подписку
- message BuffResponse{
- bool IsLost = 1; // Признак, что часть данных была потеряна
- bytes Msg = 2; // Сообщение из буфера
- }
- // GetRequest -- ответ на запрос топиков по шаблону
- message GetRequest{
- repeated bytes Msg = 1; // Список сообщений в ответе
- }
- // SubscribeRequest -- запрос на подписку топиков по шаблону
- message SubscribeRequest{
- string Sample = 1; // Шаблон топиков на подписку
- }
- // SyncRequest -- синхронный запрос в шину данных
- message SyncRequest{
- int32 Source = 1; // Источник данных (0 -- клиент, другое -- реплика)
- string Topic = 2; // Где опубликовать запрос
- bytes Msg = 3; // Байтовое представление сообщения
- }
- // SyncResponse -- ответ на синхронный запрос
- message SyncResponse{
- bytes Msg = 1; // Содержимое ответа на синхроныый запрос
- }
- // PublicRequest -- запрос на публикацию сообщения
- message PublicRequest {
- int32 Source = 1; // Источник данных (0 -- клиент, другое -- реплика)
- string Topic = 2; // Куда опубликовать сообщение
- bytes Msg = 3; // Байтовое представление сообщения
- }
- // DefaultResponse -- возвращаемое значение по умолчанию (ничего не содержит)
- message DefaultResponse {
- }
|