mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-16 10:08:36 +03:00
- Fix compilation errors. - Branch has been rebased on new master. 0025619: CAST analysis: Avoid classes with a non-empty destructor and not implementing both an assignment operator and a copy constructor The problem has been removed from following classes: - tsee_entity - Select3D_PointData - Standard_MMgrFactory - ProjLib_OnSurface - BinomAllocator - OSD_PerfMeter - StorageInfo - OpenGl_UnpackAlignmentSentry - IntPatch_InfoPD - TableauRejection - Draw_View - BOPTest_Session - BOPCol_MemBlock - BSB_T3Bits - NCollection_Handle::Ptr - Buffer (from Standard_Boolean Message_MsgFile::LoadFile (const Standard_CString))
76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
// Created on: 2002-04-03
|
|
// Created by: Michael SAZONOV
|
|
// Copyright (c) 2002-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.
|
|
|
|
#ifndef OSD_PerfMeter_HeaderFile
|
|
#define OSD_PerfMeter_HeaderFile
|
|
|
|
#include <OSD_PerfMeter.h>
|
|
|
|
//! This class enables measuring the CPU time between two points of code execution, regardless of the scope of these points of code.
|
|
//! A meter is identified by its name (string). So multiple objects in various places of user code may point to the same meter.
|
|
//! The results will be printed on stdout upon finish of the program.
|
|
//! For details see OSD_PerfMeter.h
|
|
class OSD_PerfMeter
|
|
{
|
|
|
|
public:
|
|
|
|
//! Constructs a void meter (to further call Init and Start)
|
|
OSD_PerfMeter() : myIMeter(-1) {}
|
|
|
|
//! Constructs and starts (if autoStart is true) the named meter
|
|
OSD_PerfMeter (const char* theMeter,
|
|
const bool theToAutoStart = true)
|
|
: myIMeter (perf_get_meter (theMeter, 0, 0))
|
|
{
|
|
if (myIMeter < 0) myIMeter = perf_init_meter (theMeter);
|
|
if (theToAutoStart) Start();
|
|
}
|
|
|
|
//! Prepares the named meter
|
|
void Init (const char* theMeter)
|
|
{
|
|
myIMeter = perf_get_meter (theMeter, 0, 0);
|
|
if (myIMeter < 0) myIMeter = perf_init_meter (theMeter);
|
|
}
|
|
|
|
//! Starts the meter
|
|
void Start() const { perf_start_imeter(myIMeter); }
|
|
|
|
//! Stops the meter
|
|
void Stop() const { perf_stop_imeter(myIMeter); }
|
|
|
|
//! Increments the counter w/o time measurement
|
|
void Tick() const { perf_tick_imeter(myIMeter); }
|
|
|
|
//! Outputs the meter data and resets it to initial state
|
|
void Flush() const { perf_close_imeter(myIMeter); }
|
|
|
|
//! Assures stopping upon destruction
|
|
~OSD_PerfMeter() { if (myIMeter >= 0) Stop(); }
|
|
|
|
private:
|
|
|
|
OSD_PerfMeter(const OSD_PerfMeter&);
|
|
OSD_PerfMeter& operator= (const OSD_PerfMeter&);
|
|
|
|
protected:
|
|
|
|
int myIMeter;
|
|
|
|
};
|
|
|
|
#endif // OSD_PerfMeter_HeaderFile
|