您的位置:首页 > 运维架构

aop之应用 时间记录器及日志

2015-12-11 11:19 453 查看
struct TimeElapsedAspect
{
void Before(int i)
{
m_lastTime = m_t.elapsed();
}
void After(int i)
{
std::cout << "time elapsed: " << m_t.elapsed() - m_lastTime << "ms" <<std::endl;
}
private:
double m_lastTime;
Timer m_t;

};
struct LoggingAspect
{
void Before(int i)
{
std::cout << "entering" << std::endl;
}
void After(int i)
{
std::cout << "leaving" << std::endl;
}
};
void foo(int a)
{
std::cout << "real HT function: " << a << std::endl;
for (int i = 0; i < 10000; i+=a )
{
if (i % 1000 == 0)
std::cout << i << std::endl;
}
}

Invoke<LoggingAspect, TimeElapsedAspect>(&foo, 1); //织入方法
std::cout << "-----------------------" << std::endl;
Invoke<TimeElapsedAspect, LoggingAspect>(&foo, 1);


Invoke的实现:http://blog.csdn.net/ozuoqi/article/details/50261353

TImer的实现:http://blog.csdn.net/ozuoqi/article/details/50261151
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ c++11