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 (SubscribeRequest) returns (stream BuffResponse){} // Get -- возвращает значения топиков по шаблону rpc Get(SubscribeRequest) returns (GetRequest){} } // BuffResponse -- ответ на буферизованную подписку message BuffResponse{ bool IsLost = 1; // Признак, что часть данных была потеряна } // 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 { }