0024933: Inconsistent results of self-interferences checker in SALOME and DRAW Applic...
[occt.git] / src / BOPTest / BOPTest_Chronometer.hxx
1 // Created by: Peter KURNEV
2 // Copyright (c) 2010-2014 OPEN CASCADE SAS
3 //
4 // This file is part of Open CASCADE Technology software library.
5 //
6 // This library is free software; you can redistribute it and/or modify it under
7 // the terms of the GNU Lesser General Public License version 2.1 as published
8 // by the Free Software Foundation, with special exception defined in the file
9 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10 // distribution for complete text of the license and disclaimer of any warranty.
11 //
12 // Alternatively, this file may be used under the terms of Open CASCADE
13 // commercial license or contractual agreement.
14
15 #ifndef  BOPTest_Chronometer_HeaderFile
16 #define  BOPTest_Chronometer_HeaderFile
17 //
18 #ifdef HAVE_TBB
19 #include <BOPCol_TBB.hxx>
20 //=======================================================================
21 //class : BOPTime_Chronometer
22 //purpose  : 
23 //=======================================================================
24 class BOPTime_Chronometer {
25  public:
26   BOPTime_Chronometer() {
27   }
28   //
29   ~BOPTime_Chronometer() {
30   }
31   //
32   void Start() {
33     myT0 = tick_count::now();
34   }
35   //
36   void Stop() {
37     myTime=(tick_count::now() - myT0).seconds();
38   }
39   //
40   double Time() const{
41     return myTime;
42   };
43   //
44  protected:
45   tick_count myT0;
46   double myTime;
47 };
48 ////////////////////////////////////////////////////////////////////////
49 #else
50 #include <OSD_Chronometer.hxx>
51 //=======================================================================
52 //class    : BOPTime_Chronometer
53 //purpose  : 
54 //=======================================================================
55 class BOPTime_Chronometer {
56  public:
57   BOPTime_Chronometer() {
58   }
59   //
60   ~BOPTime_Chronometer() {
61   }
62   //
63   void Start() {
64     myChronometer.Reset();
65     myChronometer.Start();
66   }
67   //
68   void Stop() {
69     myChronometer.Stop();
70     myChronometer.Show(myTime);
71   }
72   //
73   double Time() const{
74     return myTime;
75   };
76   //
77  protected:
78   OSD_Chronometer myChronometer;
79   double myTime;
80 };
81 #endif
82 //
83 #endif