source: XIOS/dev/branch_yushan_merged/extern/remap/src/timerRemap.cpp @ 1146

Last change on this file since 1146 was 1146, checked in by yushan, 7 years ago

save modif

File size: 1.0 KB
Line 
1#include "timerRemap.hpp"
2#include "mpi.hpp"
3#include <string>
4#include <map>
5#include <iostream>
6
7namespace sphereRemap {
8
9using namespace std;
10
11map<string,CTimer*> *CTimer::allTimer = 0;
12
13CTimer::CTimer(const string& name_) : name(name_)
14{
15        reset();
16}
17
18double CTimer::getTime(void)
19{
20        return MPI_Wtime();
21}
22
23void CTimer::suspend(void)
24{
25        if (!suspended)
26                cumulatedTime+=getTime()-lastTime;
27        suspended=true;
28}
29
30void CTimer::resume(void)
31{
32        if (suspended)
33                lastTime=getTime();
34        suspended=false;
35}
36
37void CTimer::reset(void)
38{
39        cumulatedTime=0.;
40        suspended=true;
41}
42
43double CTimer::getCumulatedTime(void)
44{
45        return cumulatedTime;
46}
47
48void CTimer::print(void)
49{
50#ifdef TIMEIT
51        cout << " Time for "<<name<<" : "<<getCumulatedTime() <<"  s"<<endl;
52#endif
53}
54
55CTimer& CTimer::get(const string name)
56{
57        if(allTimer == 0) allTimer = new map<string,CTimer*>;
58        map<string,CTimer*>::iterator it;
59        it=(*allTimer).find(name);
60        if (it==(*allTimer).end()) it=(*allTimer).insert(pair<string,CTimer*>(name,new CTimer(name))).first;
61        return *(it->second);
62}
63}
Note: See TracBrowser for help on using the repository browser.