Warning, /include/opencascade/MoniTool_Timer.lxx is written in an unsupported language. File is not indexed.
0001 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0002 //
0003 // This file is part of Open CASCADE Technology software library.
0004 //
0005 // This library is free software; you can redistribute it and/or modify it under
0006 // the terms of the GNU Lesser General Public License version 2.1 as published
0007 // by the Free Software Foundation, with special exception defined in the file
0008 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0009 // distribution for complete text of the license and disclaimer of any warranty.
0010 //
0011 // Alternatively, this file may be used under the terms of Open CASCADE
0012 // commercial license or contractual agreement.
0013
0014 //=======================================================================
0015 //function : MoniTool_Timer
0016 //purpose :
0017 //=======================================================================
0018
0019 inline MoniTool_Timer::MoniTool_Timer() : myCount(0), myNesting(0), myAmend(0)
0020 {
0021 }
0022
0023 //=======================================================================
0024 //function : Timer
0025 //purpose :
0026 //=======================================================================
0027
0028 inline OSD_Timer& MoniTool_Timer::Timer()
0029 {
0030 return myTimer;
0031 }
0032
0033 //=======================================================================
0034 //function : Timer
0035 //purpose :
0036 //=======================================================================
0037
0038 inline const OSD_Timer& MoniTool_Timer::Timer() const
0039 {
0040 return myTimer;
0041 }
0042
0043 //=======================================================================
0044 //function : Start
0045 //purpose :
0046 //=======================================================================
0047
0048 inline void MoniTool_Timer::Start()
0049 {
0050 // AmendStart();
0051 if ( ! myNesting ) myTimer.Start();
0052 myCount++;
0053 myNesting++;
0054 }
0055
0056 //=======================================================================
0057 //function : Stop
0058 //purpose :
0059 //=======================================================================
0060
0061 inline void MoniTool_Timer::Stop()
0062 {
0063 myNesting--;
0064 if ( ! myNesting ) myTimer.Stop();
0065 // AmendStop();
0066 }
0067
0068 //=======================================================================
0069 //function : Reset
0070 //purpose :
0071 //=======================================================================
0072
0073 inline void MoniTool_Timer::Reset()
0074 {
0075 myTimer.Reset();
0076 myCount = myNesting = 0;
0077 myAmend = 0;
0078 }
0079
0080 //=======================================================================
0081 //function : Count
0082 //purpose :
0083 //=======================================================================
0084
0085 inline Standard_Integer MoniTool_Timer::Count() const
0086 {
0087 return myCount;
0088 }
0089
0090 //=======================================================================
0091 //function : IsRunning
0092 //purpose :
0093 //=======================================================================
0094
0095 inline Standard_Integer MoniTool_Timer::IsRunning() const
0096 {
0097 return myNesting;
0098 }
0099
0100 //=======================================================================
0101 //function : Amend
0102 //purpose :
0103 //=======================================================================
0104
0105 inline Standard_Real MoniTool_Timer::Amend() const
0106 {
0107 return myAmend;
0108 }
0109
0110 //=======================================================================
0111 //function : CPU
0112 //purpose :
0113 //=======================================================================
0114
0115 inline Standard_Real MoniTool_Timer::CPU()
0116 {
0117 Standard_Integer minutes, hours;
0118 Standard_Real seconds, cpu;
0119 myTimer.Show(seconds,minutes,hours,cpu);
0120 return cpu - myAmend;
0121 }
0122
0123 //=======================================================================
0124 //function : Start
0125 //purpose :
0126 //=======================================================================
0127
0128 inline void MoniTool_Timer::Start(const Standard_CString name)
0129 {
0130 Timer(name)->Start();
0131 }
0132
0133 //=======================================================================
0134 //function : Stop
0135 //purpose :
0136 //=======================================================================
0137
0138 inline void MoniTool_Timer::Stop(const Standard_CString name)
0139 {
0140 Timer(name)->Stop();
0141 }