Есть иерархия классов логирования на С++
class ICustomEvent;
class EventManager;
// call
{
EventManager::Instance()->AddEvent( new ICustomEvent( /* params */ ) );
}
По поводу не использовать велосипед просьба не писать.
Проблема такая, что мне необходимо засекать время выполнения кода. По большому счету — выполнение кода текущего стека
{
EventManager::Instance()->AddEvent( new ICustomEvent( /* params */ ) ); // start timer
// code
} // stop timer
Не могу придумать, как можно удобно сделать этот самый класс таймера.
хочется:
1. создавать объект на стеке, который в конструкторе засекает, в деструкторе сохраняет значение в событие
2. писать все не более, чем в 1 строчку.
Вариант сейчас такой созрел: написать декоратор для событий, который будет иметь 2 доп. метода: старт/стоп
Создать класс, который будет получать ссылку на декоратор, создаваться на стеке, и выставлять все параметры. но это много и как-то некрасиво.