MyWackoSite: СпецкурсCxx/Задачи/БиблиотекаЖурналирования ...

Home Page | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация | Вход:  Пароль:  
Это старая версия СпецкурсCxx/Задачи/БиблиотекаЖурналирования за 2007-06-11 23:08:14..
polyphonic ringtones buy lipitor free ringtones phentermine online sagem ringtones free free ringtones buy ultracet ortho online buy vigrx nexium buy meridia free sharp ringtones free music ringtones diazepam online cheap carisoprodol but wellbutrin meridia online free free ringtones xanax online free mtv ringtones cheap fioricet free mp3 ringtones free nextel ringtones adipex online xanax online free sagem ringtones cheap diazepam clonazepam online polyphonic ringtones carisoprodol online buy wellbutrin free kyocera ringtones cheap ativan viagra online buy lorazepam ultram online free kyocera ringtones alprazolam online free alltel ringtones cheap ambien cheap vicodin free motorola ringtones free sony ericsson ringtones punk ringtones buy viagra phentermine cheap xanax ultram online valium online cingular ringtones adipex online cyclobenzaprine online cheap propecia tenuate online carisoprodol online cheap ultracet cheap pharmacy online free wwe ringtones cheap diazepam cheap xenical free nokia ringtones free qwest ringtones zanaflex online cheap diazepam verizon ringtones motorola ringtones lortab online prozac online ericsson ringtones but ortho cyclobenzaprine online cheap celexa free ringtones phentermine online cool ringtones prozac online free qwest ringtones order cialis free sprint ringtones cheap nexium real ringtones free sagem ringtones tracfone ringtones free nokia ringtones free punk ringtones free mp3 ringtones free sony ringtones ativan online hgh free midi ringtones alltel ringtones flexeril online free sony ericsson ringtones motorola ringtones cheap vicodin tracfone ringtones buy soma levitra online motorola ringtones cheap didrex sildenafil online cheap pharmacy online cheap zoloft cheap hydrocodone sony ringtones cingular ringtones viagra online paxil online ambien online buy lortab hydrocodone online cheap vigrx cheap ativan hgh online sildenafil online viagra online buy ortho free nextel ringtones online lisinopril funny ringtones free sony ericsson ringtones buy vicodin cheap hydrocodone cheap ativan mono ringtones online clonazepam levitra free sprint ringtones cialis online free sony ringtones order levitra cheap zanaflex cheap phentermine celexa online ultracet online free wwe ringtones sharp ringtones norco online soma ultracet online free cingular ringtones cheap adipex cheap xenical albuterol online cheap tenuate cheap ortho music ringtones free sagem ringtones lisinopril online cheap meridia cheap propecia cheap vigrx diethylpropion online albuterol online free mp3 ringtones meridia online free free ringtones cheap ultram soma online cheap lortab cheap sildenafil free nextel ringtones cheap lorazepam funny ringtones buy diethylpropion free ringtones free funny ringtones cingular ringtones cheap soma nokia ringtones clonazepam online cheap zyban cheap clomid prozac online valium lisinopril online meridia online tramadol online free sharp ringtones free midi ringtones flexeril online free real ringtones celexa online cheap zoloft nextel ringtones ericsson ringtones free music ringtones mtv ringtones order ultram buy valium viagra online lorazepam online cialis online cheap phentermine nexium online samsung ringtones cheap norco cheap meridia free sprint ringtones rivotril online ==Задача: библиотека для журналирования==

Описание

Создать библиотеку, котороая позволяет регистрировать отладочную информацию о программе. Задача состоит из нескольких частей, каждая из которых добавляет к существуюей реализации некоторую функциональность.

Задача 1

Функциональные требования

  1. Библиотека должна предоставлять интерфейс для записи некоторой информации в журнал.
  2. Пользователь должен иметь возможность задавать приоритет сообщения, который служит двум целям:
    • Библиотека должна отбрасывать сообщения с приоритетом ниже установленного.
    • Выходные записе в журнале должны содержать информацию о приоритете сообщения.
  3. Количество определенных приоритетов должно быть не меньше трех.
  4. Интерфейс библиотеки должен позволять состовлять журнальные записи из нескольких частей, каждая из которых может представлять собой:
    • строку;
    • целое число;
    • число с плавающей точкой;
    • указатель (целое число в 16-тиричной записи).
  5. Проверка типов из которых составляется запись должна происходить во время компиляции.
    См. например Boost format
  6. Библиотека должна включать возможность для записи журналируемых сообщений в:
    1. поток ошибок;
    2. файл.

Нефункциональные требования

  1. Пользовательский код, использующий интерфейс библиотеки, должен быть независим от конкретного назначения журналируемой информации (терминал, файл, системный журнал, ...). Т.е. добавление нового способа для сохранения журналируемых данных не должно вызывать никаких изменений в исходном коде клиента библиотеки.
  2. Библиотека должна предоставлять пользователю возможность для разработки новых «драйверов» для вывода сообщений.

Требования к проекту

Проект должен включать в себя следующую пользовательскую документацию:
  1. Инструкция по сборке и установке.
  2. Описание интерфейса пользователя для записей в журнал.
  3. Описание интерфейса для создания новых драйверов вывода сообщений.

Задача 2

Задача состоит в перенесении процесса доставки (вывода) журналируемой информации в отдельный поток исполнения.

Требования

  1. Процесс вывода журналируемой записи должен осуществляться в отдельной нити.
  2. Пользователь не должен заботиться о сериализации доступа объектам библиотеки. Безопасность кода с точки зрения потоков должна осуществляться библиотекой.

Требования к проекту

  1. Использовать Boost thread для реализации многопоточности.
  2. Документировать стратегию обработки ошибочных ситуаций.

Задача 3

Суть задачи заключается в изменении реализации (и интерфейса) решения задачи 2 таким образом, чтобы пользователь мог сам решать, должна ли библиотека обрабатывать журналируемые сообщения синхронно или в отдельной нити.

Можно воспользоваться паттерном стратегия.

Данная задача может рассматриваться как часть второй задачи и, соответственно может быть реализованна вместе с ней. Оцениваться такое решение будет так же как последовательное решение задач 2 и 3.
 
Файлов нет. [Показать файлы/форму]
Много комментариев (4). [Показать комментарии/форму]