| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 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 (SyncResponse){}
- }
- // BuffRequest -- запрос на буферизованную подписку
- message BuffRequest{
- string Sample = 1; // Шаблон топиков на подписку
- string ClientName = 2; // Уникальное имя клиента
- int32 MsgSumSizeLimit = 3; // Предел суммарного количества сообщений
- int32 MsgSaveSecondLimit = 4; // Предел в секундах как долго хранить буфер с момента последнего доступа
- }
- // BuffResponse -- ответ на буферизованную подписку
- message BuffResponse{
- bool IsLost = 1; // Признак, что часть данных была потеряна
- bytes Msg = 2; // Сообщение из буфера
- }
- // GetRequest -- ответ на запрос топиков по шаблону
- message GetRequest{
- repeated bytes Msg = 1; // Список сообщений в ответе
- }
- // SubscribeRequest -- запрос на подписку топиков по шаблону
- message SubscribeRequest{
- string Sample = 1; // Шаблон топиков на подписку
- string ClientName = 2; // Уникальное имя клиента
- }
- // SyncRequest -- синхронный запрос в шину данных
- message SyncRequest{
- int32 Source = 1; // Источник данных (0 -- клиент, другое -- реплика)
- string Topic = 2; // Где опубликовать запрос
- bytes Msg = 3; // Байтовое представление сообщения
- }
- // TopicMsg -- сообщение топика (внутри шины данных)
- message TopicMsg{
- 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; // Байтовое представление сообщения
- string Uuid = 4; // Уникальная метка сообщения
- repeated int32 RepliesList = 5; // Список реплик, на которых сообщение уже опубликовано
- }
- // DefaultResponse -- возвращаемое значение по умолчанию (ничего не содержит)
- message DefaultResponse {
- }
|