// Copyright (c) 1999-2014 OPEN CASCADE SAS // // This file is part of Open CASCADE Technology software library. // // This library is free software; you can redistribute it and/or modify it under // the terms of the GNU Lesser General Public License version 2.1 as published // by the Free Software Foundation, with special exception defined in the file // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT // distribution for complete text of the license and disclaimer of any warranty. // // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. #include //======================================================================= //function : MoniTool_TimerSentry //purpose : //======================================================================= inline MoniTool_TimerSentry::MoniTool_TimerSentry (const Standard_CString cname) : myTimer ( MoniTool_Timer::Timer ( cname ) ) { myTimer->Start(); } //======================================================================= //function : MoniTool_TimerSentry //purpose : //======================================================================= inline MoniTool_TimerSentry::MoniTool_TimerSentry (const Handle(MoniTool_Timer)& timer) { myTimer = timer; myTimer->Start(); } //======================================================================= //function : Destructor //purpose : make stop for corresponding timer before destroying //======================================================================= inline MoniTool_TimerSentry::~MoniTool_TimerSentry() { if ( ! myTimer.IsNull() ) myTimer->Stop(); } //======================================================================= //function : Timer //purpose : //======================================================================= inline Handle(MoniTool_Timer) MoniTool_TimerSentry::Timer() const { return myTimer; } //======================================================================= //function : Stop //purpose : //======================================================================= inline void MoniTool_TimerSentry::Stop() { if ( ! myTimer.IsNull() ) myTimer->Stop(); myTimer.Nullify(); }