/usr/include/vtk-7.1/vtkExecutionTimer.h is in libvtk7-dev 7.1.1+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkAppendFilter.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkExecutionTimer
* @brief Time filter execution
*
*
*
* This object monitors a single filter for StartEvent and EndEvent.
* Each time it hears StartEvent it records the time. Each time it
* hears EndEvent it measures the elapsed time (both CPU and
* wall-clock) since the most recent StartEvent. Internally we use
* vtkTimerLog for measurements.
*
* By default we simply store the elapsed time. You are welcome to
* subclass and override TimerFinished() to do anything you want.
*/
#ifndef vtkExecutionTimer_h
#define vtkExecutionTimer_h
#include "vtkObject.h"
#include "vtkFiltersCoreModule.h" // For export macro
class vtkAlgorithm;
class vtkCallbackCommand;
class VTKFILTERSCORE_EXPORT vtkExecutionTimer : public vtkObject
{
public:
vtkTypeMacro(vtkExecutionTimer, vtkObject);
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
/**
* Construct a new timer with no attached filter. Use SetFilter()
* to specify the vtkAlgorithm whose execution you want to time.
*/
static vtkExecutionTimer* New();
//@{
/**
* Set/get the filter to be monitored. The only real constraint
* here is that the vtkExecutive associated with the filter must
* fire StartEvent and EndEvent before and after the filter is
* executed. All VTK executives should do this.
*/
void SetFilter(vtkAlgorithm* filter);
vtkGetObjectMacro(Filter, vtkAlgorithm);
//@}
//@{
/**
* Get the total CPU time (in seconds) that elapsed between
* StartEvent and EndEvent. This is undefined before the filter has
* finished executing.
*/
vtkGetMacro(ElapsedCPUTime, double);
//@}
//@{
/**
* Get the total wall clock time (in seconds) that elapsed between
* StartEvent and EndEvent. This is undefined before the filter has
* finished executing.
*/
vtkGetMacro(ElapsedWallClockTime, double);
//@}
protected:
vtkExecutionTimer();
~vtkExecutionTimer() VTK_OVERRIDE;
// This is the observer that will catch StartEvent and hand off to
// EventRelay
vtkCallbackCommand* Callback;
// This is the filter that will be timed
vtkAlgorithm* Filter;
// These are where we keep track of the timestamps for start/end
double CPUStartTime;
double CPUEndTime;
double WallClockStartTime;
double WallClockEndTime;
double ElapsedCPUTime;
double ElapsedWallClockTime;
//@{
/**
* Convenience functions -- StartTimer clears out the elapsed times
* and records start times; StopTimer records end times and computes
* the elapsed time
*/
void StartTimer();
void StopTimer();
//@}
/**
* This is where you can do anything you want with the progress
* event. By default this does nothing.
*/
virtual void TimerFinished();
/**
* This is the callback that VTK will invoke when it sees StartEvent
* and EndEvent. Its responsibility is to pass the event on to an
* instance of this observer class.
*/
static void EventRelay(vtkObject* caller, unsigned long eventId, void* clientData, void* callData);
private:
vtkExecutionTimer(const vtkExecutionTimer&) VTK_DELETE_FUNCTION;
void operator=(const vtkExecutionTimer&) VTK_DELETE_FUNCTION;
};
#endif
|