source: XIOS/dev/dev_trunk_omp/extern/remap/src/timerRemap.cpp @ 1602

Last change on this file since 1602 was 1602, checked in by yushan, 5 years ago

branch_openmp merged with trunk r1597

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