Files
Saver/README.md
T

33 lines
2.2 KiB
Markdown

# Saver
Это программа для логирования сообщений
# Сборка
Запустите в корне make
# Использование
```bash
./app <log_file> <base_importance>
```
Существует 3 уровня важности:
- Low
- Middle
- High
Далее программа будет поочерёдно просить ввести сообщение и его важность. Если ничего не вводить или ввести не коректно в поле важности то будет присовено значение base_importance. Если важность сообщения ниже base_importance, то оно записывается в журнал не будет.
# src/Saver
Модуль библиотеки.
ISaver - header-only интерфейс библиотеки. Он нужен как API для работы с библиотекой.
Saver - наследник ISaver, реализующий сохранение сообщений.
SaverBuilder.cpp - здесь реализована внешняя функция создающая только один Saver, при этом передаёт право владения им, это значит вызывающий дожен следить за удалением Saver перед освоюождением библиотеки.
# app
Модуль приложения
main.cpp - точка входа в программу. Создаёт и запускает компоненты приложения.
SaveThread - наследник ISaveThread. Реализует отдельный поток для сохранения сообщений. Сообщения перед сохранением помещаются в очередь.
ISaveThread - интерфейс SaveThread.
UserInput - Класс реализующий UI. Принимает сообщение и его важность от пользователя и передаёт в ISaveThread (Сыллку на SaveThread). Также он занимет главный поток выполнения программы, поэтому неявно управляет временем жизни программы.