/usr/include/InsightToolkit/Common/itkResourceProbesCollectorBase.txx is in libinsighttoolkit3-dev 3.20.1-1.
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 133 134 135 136 137 138 139 140 141 142 143 144 145 | /*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: itkResourceProbesCollectorBase.txx
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/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 notices for more information.
=========================================================================*/
#ifndef __itkResourceProbesCollectorBase_txx
#define __itkResourceProbesCollectorBase_txx
#include "itkResourceProbesCollectorBase.h"
#include <iostream>
namespace itk
{
#if defined(ITKSTATIC) || !(defined(_MSC_VER) && (_MSC_VER <= 1200))
template <class TProbe>
ResourceProbesCollectorBase<TProbe>
::~ResourceProbesCollectorBase()
{
}
template <class TProbe>
void
ResourceProbesCollectorBase<TProbe>
::Start(const char * id)
{
// if the probe does not exist yet, it is created.
this->m_Probes[ id ].Start();
}
template <class TProbe>
void
ResourceProbesCollectorBase<TProbe>
::Stop(const char * id)
{
IdType tid = id;
typename MapType::iterator pos = this->m_Probes.find( tid );
if ( pos == this->m_Probes.end() )
{
itkGenericExceptionMacro( << "The probe \""<< id<< "\" does not exist. It can not be stopped." );
return;
}
pos->second.Stop();
}
template <class TProbe>
void
ResourceProbesCollectorBase<TProbe>
::Report( std::ostream & os ) const
{
typename MapType::const_iterator probe = this->m_Probes.begin();
typename MapType::const_iterator end = this->m_Probes.end();
if ( probe == end )
{
os << "No probes have been created" << std::endl;
return;
}
os.width(20);
os << " Probe Tag ";
os.width(10);
os << " Starts ";
os.width(10);
os << " Stops ";
os.width(15);
os << probe->second.GetType() << " (" << probe->second.GetUnit() << ")";
os << std::endl;
while( probe != end )
{
os.width(20);
os << probe->first << " ";
os.width(10);
os << probe->second.GetNumberOfStarts() << " ";
os.width(10);
os << probe->second.GetNumberOfStops() << " ";
os.width(15);
os << probe->second.GetMean();
os << std::endl;
probe++;
}
}
template <class TProbe>
void
ResourceProbesCollectorBase<TProbe>
::Clear(void)
{
this->m_Probes.clear();
}
#else
template <class TProbe>
ResourceProbesCollectorBase<TProbe>
::~ResourceProbesCollectorBase()
{
}
template <class TProbe>
void
ResourceProbesCollectorBase<TProbe>
::Start(const char * id)
{
}
template <class TProbe>
void
ResourceProbesCollectorBase<TProbe>
::Stop(const char * id)
{
}
template <class TProbe>
void
ResourceProbesCollectorBase<TProbe>
::Report( std::ostream & os ) const
{
os << "Warning: ResourceProbesCollector's are not supported in shared libraries by the Visual Studio 6 and earlier compilers." << std::endl
<< "Build with BUILD_SHARED_LIBS OFF if you need this functionality." << std::endl;
}
template <class TProbe>
void
ResourceProbesCollectorBase<TProbe>
::Clear(void)
{
}
#endif
} // end namespace itk
#endif //__itkResourceProbesCollectorBase_txx
|