Transport_catalogue - транспортный справочник. Работает с JSON-запросами. Выдаёт ответ на запрос отрисовки маршрутов строкой SVG формата. Реализован конструктор JSON с использованием цепочки вызовов методом, явные ошибки находятся на этапе компиляции. Для сериализации и десериализации транспортного справочника применяется Google Protocol Buffers(Protobuf).
- C++17 и выше
- Protobuf 3
Для сборки проекта потребуется установить Google Protocol Buffers. Для этого нужно:
- Скачать Protobuf можно с репозитория на GitHub. Выберите архив protobuf-cpp с исходным кодом последней версии и распакуйте его на своём компьютере. Исходный код содержит CMake-проект.
- Создать папки build-debug и build-release для сборки двух конфигураций Protobuf. Если будет использоваться Visual Studio, будет достаточно одной папки build. А если CLion или QT Creator, IDE автоматически создаст папки при открытии файла CMakeLists.txt.
- Создать папку, в которой разместим пакет Protobuf. Будем называть её /path/to/protobuf/package(далее следует указывать абсолютный путь, а не относительный).
Если сборка будет происходить не через IDE, в папке Debug выполните следующие команды:
cmake <путь к protobuf>/cmake -DCMAKE_BUILD_TYPE=Debug \
-Dprotobuf_BUILD_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=/path/to/protobuf/package
cmake --build .
где:
Dprotobuf_BUILD_TESTS=OFF
— чтобы не тратить время на сборку тестов,DCMAKE_INSTALL_PREFIX=/path/to/protobuf/package
— чтобы сообщить, где нужно будет создать пакет Protobuf.
Для Visual Studio команды немного другие. Конфигурация указывается не при генерации, а при сборке:
cmake <путь к protobuf>/cmake ^
-Dprotobuf_BUILD_TESTS=OFF ^
-DCMAKE_INSTALL_PREFIX=/path/to/protobuf/package ^
-Dprotobuf_MSVC_STATIC_RUNTIME=OFF
cmake --build . --config Debug
После сборки библиотеки нужно запустить команду:
cmake --install .
Под Visual Studio нужно указать конфигурацию, поскольку она не задавалась во время генерации:
cmake --install . --config Debug
Далее нужно проделать те же шаги с конфигурацией Release.
Важно! При сборке проекта, нужно указать путь к protobuf:
DCMAKE_PREFIX_PATH=/path/to/protobuf/package
С помощью CMake собрать файл CMakeLists.txt, который находится в папке src.
make_base
— создание базы транспортного справочника по запросам и её сериализация в файл с помощью Protobuf.
process_requests
— десериализация базы из файла и использование её для ответов на запросы stat_requests.