SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
Класс svcs::server::RemoteProtocol

Обрабатывает протокол удаленной связи для SVCS. Подробнее...

#include <RemoteProtocol.hxx>

Открытые члены

 RemoteProtocol (std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repository_manager)
 Конструирует RemoteProtocol с необходимыми зависимостями.
 ~RemoteProtocol ()=default
 Деструктор по умолчанию.
bool handleReceivePack ()
 Обрабатывает протокол 'receive-pack' для операций push.
bool handleUploadPack ()
 Обрабатывает протокол 'upload-pack' для операций pull.

Подробное описание

Обрабатывает протокол удаленной связи для SVCS.

Управляет пользовательским протоколом для операций push и pull, включая согласование объектов, передачу данных и обновления ссылок между клиентом и сервером. Протокол представляет собой простой текстовый обмен через стандартный ввод/вывод.

Конструктор(ы)

◆ RemoteProtocol()

svcs::server::RemoteProtocol::RemoteProtocol ( std::shared_ptr< ISubject > event_bus,
std::shared_ptr< RepositoryManager > repository_manager )

Конструирует RemoteProtocol с необходимыми зависимостями.

Аргументы
event_busОбщий указатель на шину событий для системы уведомлений (ISubject).
repository_managerОбщий указатель на менеджер репозитория для операций с репозиторием (RepositoryManager).

Методы

◆ handleReceivePack()

bool svcs::server::RemoteProtocol::handleReceivePack ( )

Обрабатывает протокол 'receive-pack' для операций push.

Возвращает
bool True если протокол завершен успешно (все объекты получены и ссылки обновлены), false в противном случае.

Эта функция обрабатывает запросы push от клиента. Она управляет согласованием объектов, получает недостающие данные объектов от клиента и, наконец, пытается применить запрошенные обновления ссылок (например, обновление веток).

◆ handleUploadPack()

bool svcs::server::RemoteProtocol::handleUploadPack ( )

Обрабатывает протокол 'upload-pack' для операций pull.

Возвращает
bool True если протокол завершен успешно (объекты согласованы и отправлены), false в противном случае.

Эта функция обрабатывает запросы pull от клиента. Она выполняет согласование объектов путем определения, каких объектов не хватает клиенту на основе его списка 'have', а затем упаковывает и отправляет недостающие данные объектов клиенту.


Объявления и описания членов классов находятся в файлах: