markdown
Утилита для группировки команд, поступающих из стандартного ввода, в блоки (пакеты).
Поддерживает:
- Статические блоки фиксированного размера (задаётся аргументом командной строки)
- Динамические блоки с ручным управлением через команды
{и} - Вложенность динамических блоков (внутренние
{/}игнорируются) - Вывод блоков в консоль
- Сохранение каждого блока в отдельный файл с меткой времени
Проект построен на паттерне Наблюдатель (Observer):
CommandReader— читает команды изstdinBlockProcessor— накапливает команды в блоки, уведомляет подписчиковBlockHandler— обрабатывает готовые блоки: вывод в консоль и запись в файл
Это обеспечивает низкую связанность и расширяемость (легко добавить новых наблюдателей).
- C++17
- CMake 3.15+
- Компилятор с поддержкой C++17 (MSVC, GCC, Clang)
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake"
cmake --build . --config Release
#### Linux
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
#### Использование
bulk <N>
N — размер статического блока (целое положительное число)