Skip to content

oshkines/otus-cpp-prof

 
 

Repository files navigation

markdown

Парсер пакетных команд (bulk)

Описание

Утилита для группировки команд, поступающих из стандартного ввода, в блоки (пакеты).
Поддерживает:

  • Статические блоки фиксированного размера (задаётся аргументом командной строки)
  • Динамические блоки с ручным управлением через команды { и }
  • Вложенность динамических блоков (внутренние {/} игнорируются)
  • Вывод блоков в консоль
  • Сохранение каждого блока в отдельный файл с меткой времени

Архитектура

Проект построен на паттерне Наблюдатель (Observer):

  • CommandReader — читает команды из stdin
  • BlockProcessor — накапливает команды в блоки, уведомляет подписчиков
  • BlockHandler — обрабатывает готовые блоки: вывод в консоль и запись в файл

Это обеспечивает низкую связанность и расширяемость (легко добавить новых наблюдателей).

Сборка

Требования

  • C++17
  • CMake 3.15+
  • Компилятор с поддержкой C++17 (MSVC, GCC, Clang)

Инструкция

Windows (MSVC)

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 — размер статического блока (целое положительное число)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 43.8%
  • C 33.9%
  • CMake 15.8%
  • PowerShell 4.8%
  • Dockerfile 1.7%