0027067: Avoid use of virtual methods for implementation of destructors in legacy...
[occt.git] / src / MoniTool / MoniTool_TimerSentry.hxx
CommitLineData
42cf5bc1 1// Created on: 2001-12-13
2// Created by: Sergey KUUl
3// Copyright (c) 2001-2014 OPEN CASCADE SAS
4//
5// This file is part of Open CASCADE Technology software library.
6//
7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
12//
13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
15
16#ifndef _MoniTool_TimerSentry_HeaderFile
17#define _MoniTool_TimerSentry_HeaderFile
18
19#include <Standard.hxx>
20#include <Standard_DefineAlloc.hxx>
21#include <Standard_Handle.hxx>
22
23#include <Standard_CString.hxx>
24class MoniTool_Timer;
25
26
27//! A tool to facilitate using MoniTool_Timer functionality
28//! by automatically ensuring consistency of start/stop actions
29//!
30//! When instance of TimerSentry is created, a timer
31//! with corresponding name is started
32//! When instance is deleted, timer stops
33class MoniTool_TimerSentry
34{
35public:
36
37 DEFINE_STANDARD_ALLOC
38
39
40 //! Constructor creates an instance and runs the corresponding timer
41 MoniTool_TimerSentry(const Standard_CString cname);
42
43 //! Constructor creates an instance and runs the corresponding timer
44 MoniTool_TimerSentry(const Handle(MoniTool_Timer)& timer);
45
46 //! Destructor stops the associated timer
e6f550da 47 ~MoniTool_TimerSentry ();
42cf5bc1 48
49 Handle(MoniTool_Timer) Timer() const;
50
51 //! Manually stops the timer
52 void Stop();
53
54
55
56
57protected:
58
59
60
61
62
63private:
64
65
66
67 Handle(MoniTool_Timer) myTimer;
68
69
70};
71
72
73#include <MoniTool_TimerSentry.lxx>
74
75
76
77
78
79#endif // _MoniTool_TimerSentry_HeaderFile