This file is indexed.

/usr/include/trilinos/Teuchos_Time.hpp is in libtrilinos-dev 10.4.0.dfsg-1ubuntu2.

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
// @HEADER
// ***********************************************************************
// 
//                    Teuchos: Common Tools Package
//                 Copyright (2004) Sandia Corporation
// 
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
// license for use of this work by or on behalf of the U.S. Government.
// 
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of the
// License, or (at your option) any later version.
//  
// This library is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
//  
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
// Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
// 
// ***********************************************************************
// @HEADER

// Kris
// 07.08.03 -- Move into Teuchos package/namespace

#ifndef _TEUCHOS_TIME_HPP_
#define _TEUCHOS_TIME_HPP_

/*! \file Teuchos_Time.hpp
    \brief Basic wall-clock timer class
*/

#include "Teuchos_ConfigDefs.hpp"

#include <ctime>
#ifdef HAVE_MPI
#include "mpi.h"
#else
#if ICL || defined(_WIN32)
#include <time.h>
#else
#include <sys/time.h>
#ifndef MINGW
#include <sys/resource.h>
#endif
#endif
#endif


namespace Teuchos {


/** \brief Basic wall-clock timer class. 
 *
 *  To time a section of code, place it in between calls to start() and stop(). 
 *
 *  \note For std::exception safety and correct behavior in reentrant code, this class should
 * generally be used only through the Teuchos::TimeMonitor mechanism. 
 *
 */

/* ADDITIONAL COMMENTS:
 * Initial version by Mike Heroux and Kris Kampshoff. 
 * Modified as follows by Kevin Long, 9/29/03:
 * <ul>
 * <li> There is no need to define explicit copy ctor and dtor for this class.
 * <li> The wallTime() method returns the same value for every instance of this class, so
 * it would be best to make it a static method.
 * <li> Removed the communicator data member. Cross-processor comparisons of timings
 * can be done by the TimeMonitor.
 * </ul>
 */ 

class TEUCHOS_LIB_DLL_EXPORT Time
{

public:
  /** \brief Construct with a descriptive name */
  Time(const std::string& name, bool start = false);
  
  /** \brief Returns current wall-clock time in seconds.*/
  static double wallTime();
  
  /** \brief Starts the timer */
  void start(bool reset = false);

  /** \brief Stops the timer */
  double stop();

  /** \brief Returns the total time (in seconds) accumulated by this timer.
   *
   * <b>This should be called only when the clock is stopped.</b> */
  double totalElapsedTime(bool readCurrentTime = false) const;

  /** \brief Resets the cummulative time and number of times this timer
   * has been called.  Does not affect any other state. */
  void reset() {totalTime_ = 0; numCalls_ = 0;}

  /** \brief Indicates if this timer is currently running, i.e., if it has been started but
   * not yet stopped. 
   *
   *	It is necessary to know if a timer is running to avoid incorrectly starting or 
   *  stopping in reentrant code. */
  bool isRunning() const {return isRunning_;}

  /** \brief Return the name of this timer */
  const std::string& name() const {return name_;}

  /** \brief Increment the number of times this timer has been called */
  void incrementNumCalls() {numCalls_++;}

  /** \brief Return the number of times this timer has been called */
  int numCalls() const {return numCalls_;}

private:

  double startTime_;
  double totalTime_;
  bool isRunning_;
  std::string name_;
  int numCalls_;

};


} // namespace Teuchos


#endif // TEUCHOS_TIME_HPP_