xanax
online vicodin
meridia online
best casino gambling online
valium dosage
generic xanax
cheap prozac
carisoprodol online
propecia online
buy lisinopril
cheap alprazolam
music ringtones
alprazolam online
free real ringtone
cheap propecia
free motorola ringtones
soma
tenuate online
adipex online
cheap meridia
free samsung ringtones
mtv ringtones
free qwest ringtones
cheap carisoprodol
free sonyericsson ringtones
cheap clonazepam
free real ringtones
cheap diazepam
free mono ringtone
free verizon ringtones
cheap clonazepam
free wwe ringtones
didrex
free sprint ringtones
buy adipex
free cingular ringtones
cheap tramadol
advice casino online
free sharp ringtones
cyclobenzaprine online
sprint ringtones
valium online
cheap meridia
sonyericsson ringtones
free alltel ringtones
funny ringtones
buy ultracet
free music ringtones
valium online
cheap cialis
buy phentermine
mtv ringtones
generic levitra
free free ringtones
clonazepam online
verizon ringtones
generic viagra
buy ambien
free nextel ringtones
lexapro and valium
cheap ambien
wellbutrin online
wellbutrin online
tracfone ringtones
mp3 ringtones
free real ringtones
phentermine
soma online
generic diazepam
cheap norco
cheap fioricet
cingular ringtones
free real ringtones
albuterol online
free polyphonic ringtones
cheap prozac
cialis online
ambien
celexa online
propecia online
samsung ringtones
motorola ringtones
funny ringtones
free sprint ringtones
free sprint ringtones
phentermine online
free free ringtones
free kyocera ringtones
buy zyban
mono ringtones
buy ultram
online xenical
free real ringtones
xenical online
free cingular ringtones
free kyocera ringtones
free sonyericsson ringtones
valium overdose
free ericsson ringtones
cheap fioricet
but soma
wellbutrin online
fioricet online
wellbutrin online
free sharp ringtones
what does valium do
buy nexium
midi ringtones
free sonyericsson ringtones
paxil online
midi ringtones
valium sale
ambien online
free sprint ringtones
adipex online
ativan online
buy nexium
free sagem ringtone
cheap ativan
free mono ringtones
lorazepam online
free ringtones
free mono ringtones
real ringtones
generic ativan
phentermine online
norco online
ericsson ringtones
buy cialis
ultram online
free nokia ringtones
levitra online
real ringtones
free ericsson ringtones
ortho online
free free ringtones
free samsung ringtones
cyclobenzaprine online
cheap wellbutrin
punk ringtones
cool ringtones
buy clomid
free alltel ringtones
lortab online
diazepam
free sagem ringtones
ativan online
free motorola ringtones
nextel ringtones
buy meridia
free nokia ringtones
cheap paxil
free sony ericsson ringtones
best bonus casino online
sprint ringtones
alltel ringtones
xenical online
online tramadol
fioricet online
free polyphonic ringtones
buy carisoprodol
ativan online
ambien online
alltel ringtones
buy clomid
cheap alprazolam
free samsung ringtones
free nokia ringtones
adipex online
verizon ringtones
free kyocera ringtones
free tracfone ringtones
free qwest ringtone
xanax online
generic clonazepam
xenical online
cingular ringtones
cheap cialis
generic alprazolam
nexium online
cheap fioricet
free funny ringtones
free mp3 ringtones
ultracet online
cheap ativan
verizon ringtones
cheap diazepam
ericsson ringtones
rivotril
free ringtone
cheap carisoprodol
cheap xanax
free ringtones
free tracfone ringtones
buy vicodin
wwe ringtones
buy phentermine
cyclobenzaprine online
verizon ringtones
buy hydrocodone ==Задача: библиотека для журналирования==
Описание
Создать библиотеку, котороая позволяет регистрировать отладочную информацию о программе. Задача состоит из нескольких частей, каждая из которых добавляет к существуюей реализации некоторую функциональность.
Задача 1
Функциональные требования
- Библиотека должна предоставлять интерфейс для записи некоторой информации в журнал.
- Пользователь должен иметь возможность задавать приоритет сообщения, который служит двум целям:
- Библиотека должна отбрасывать сообщения с приоритетом ниже установленного.
- Выходные записе в журнале должны содержать информацию о приоритете сообщения.
- Количество определенных приоритетов должно быть не меньше трех.
- Интерфейс библиотеки должен позволять состовлять журнальные записи из нескольких частей, каждая из которых может представлять собой:
- строку;
- целое число;
- число с плавающей точкой;
- указатель (целое число в 16-тиричной записи).
- Проверка типов из которых составляется запись должна происходить во время компиляции.
- Библиотека должна включать возможность для записи журналируемых сообщений в:
- поток ошибок;
- файл.
Нефункциональные требования
- Пользовательский код, использующий интерфейс библиотеки, должен быть независим от конкретного назначения журналируемой информации (терминал, файл, системный журнал, ...). Т.е. добавление нового способа для сохранения журналируемых данных не должно вызывать никаких изменений в исходном коде клиента библиотеки.
- Библиотека должна предоставлять пользователю возможность для разработки новых «драйверов» для вывода сообщений.
Требования к проекту
Проект должен включать в себя следующую пользовательскую документацию:
- Инструкция по сборке и установке.
- Описание интерфейса пользователя для записей в журнал.
- Описание интерфейса для создания новых драйверов вывода сообщений.
Задача 2
Задача состоит в перенесении процесса доставки (вывода) журналируемой информации в отдельный поток исполнения.
Требования
- Процесс вывода журналируемой записи должен осуществляться в отдельной нити.
- Пользователь не должен заботиться о сериализации доступа объектам библиотеки. Безопасность кода с точки зрения потоков должна осуществляться библиотекой.
Требования к проекту
- Использовать
Boost thread для реализации многопоточности.
- Документировать стратегию обработки ошибочных ситуаций.
Задача 3
Суть задачи заключается в изменении реализации (и интерфейса) решения задачи 2 таким образом, чтобы пользователь мог сам решать, должна ли библиотека обрабатывать журналируемые сообщения синхронно или в отдельной нити.
Можно воспользоваться паттерном стратегия.
Данная задача может рассматриваться как часть второй задачи и, соответственно может быть реализованна вместе с ней. Оцениваться такое решение будет так же как последовательное решение задач 2 и 3.