Blame view

src/common/UtilNPP/StopWatchBase.h 2.02 KB
e41a52bb   Hu Chunming   1.优化数据读取线程;2. 添加A...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  /**
   * Copyright 1993-2015 NVIDIA Corporation.  All rights reserved.
   *
   * Please refer to the NVIDIA end user license agreement (EULA) associated
   * with this source code for terms and conditions that govern your use of
   * this software. Any use, reproduction, disclosure, or distribution of
   * this software and related documentation outside the terms of the EULA
   * is strictly prohibited.
   *
   */
  
  #ifndef NV_NPP_UTIL_STOP_WATCH_BASE_H
  #define NV_NPP_UTIL_STOP_WATCH_BASE_H
  
  
  namespace npp
  {
  
      /// Simple stop watch class
      ///     This class uses high-precision timers. It is implemented
      /// using templates and inline functions to cause minimal call-overhead
      /// and provide the most accurate timings.
      template<class OSPolicy>
      class StopWatchBase : public OSPolicy
      {
          public:
  
              // generic, specialized type
              typedef StopWatchBase<OSPolicy>   SelfType;
              // generic, specialized type pointer
              typedef StopWatchBase<OSPolicy>  *SelfTypePtr;
  
          public:
  
              //! Constructor, default
              StopWatchBase();
  
              // Destructor
              ~StopWatchBase();
  
          public:
  
              //! Start time measurement
              inline void start();
  
              //! Stop time measurement
              inline void stop();
  
              //! Reset time counters to zero
              inline void reset();
  
              //! Time in msec. after start. If the stop watch is still running (i.e. there
              //! was no call to stop()) then the elapsed time is returned, otherwise the
              //! time between the last start() and stop call is returned
              inline const double elapsed() const;
  
          private:
  
              //! Constructor, copy (not implemented)
              StopWatchBase(const StopWatchBase &);
  
              //! Assignment operator (not implemented)
              StopWatchBase &operator=(const StopWatchBase &);
      };
  
      // include, implementation
  #include "StopWatchBase.inl"
  
  } // npp namespace
  
  #endif // NV_NPP_UTIL_STOP_WATCH_BASE_H