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
Функциональные требования
- Библиотека должна предоставлять интерфейс для записи некоторой информации в журнал.
- Пользователь должен иметь возможность задавать приоритет сообщения, который служит двум целям:
- Библиотека должна отбрасывать сообщения с приоритетом ниже установленного.
- Выходные записе в журнале должны содержать информацию о приоритете сообщения.
- Количество определенных приоритетов должно быть не меньше трех.
- Интерфейс библиотеки должен позволять состовлять журнальные записи из нескольких частей, каждая из которых может представлять собой:
- строку;
- целое число;
- число с плавающей точкой;
- указатель (целое число в 16-тиричной записи).
- Проверка типов из которых составляется запись должна происходить во время компиляции.
- Библиотека должна включать возможность для записи журналируемых сообщений в:
- поток ошибок;
- файл.
Нефункциональные требования
- Пользовательский код, использующий интерфейс библиотеки, должен быть независим от конкретного назначения журналируемой информации (терминал, файл, системный журнал, ...). Т.е. добавление нового способа для сохранения журналируемых данных не должно вызывать никаких изменений в исходном коде клиента библиотеки.
- Библиотека должна предоставлять пользователю возможность для разработки новых «драйверов» для вывода сообщений.
Требования к проекту
Проект должен включать в себя следующую пользовательскую документацию:
- Инструкция по сборке и установке.
- Описание интерфейса пользователя для записей в журнал.
- Описание интерфейса для создания новых драйверов вывода сообщений.
Задача 2
Задача состоит в перенесении процесса доставки (вывода) журналируемой информации в отдельный поток исполнения.
Требования
- Процесс вывода журналируемой записи должен осуществляться в отдельной нити.
- Пользователь не должен заботиться о сериализации доступа объектам библиотеки. Безопасность кода с точки зрения потоков должна осуществляться библиотекой.
Требования к проекту
- Использовать
Boost thread для реализации многопоточности.
- Документировать стратегию обработки ошибочных ситуаций.
Задача 3
Суть задачи заключается в изменении реализации (и интерфейса) решения задачи 2 таким образом, чтобы пользователь мог сам решать, должна ли библиотека обрабатывать журналируемые сообщения синхронно или в отдельной нити.
Можно воспользоваться паттерном стратегия.
Данная задача может рассматриваться как часть второй задачи и, соответственно может быть реализованна вместе с ней. Оцениваться такое решение будет так же как последовательное решение задач 2 и 3.