This file is indexed.

/usr/include/cln/timing.h is in libcln-dev 1.3.2-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
// Timing tools.

#ifndef _CL_TIMING_H
#define _CL_TIMING_H

#include "cln/config.h"
#include "cln/intparam.h"
#include "cln/types.h"

#include "cln/io.h"

namespace cln {

struct cl_timespec {
	uintL tv_sec;	// seconds since 1970-01-01
	sintL tv_nsec;	// nanoseconds, >= 0, < 1000000000
	// Constructors.
	cl_timespec () {}
	cl_timespec (uintL sec, sintL nsec)
		: tv_sec (sec), tv_nsec (nsec) {}
};

struct cl_time_duration {
	uintL tv_sec;	// seconds
	uintL tv_nsec;	// nanoseconds
	// Constructors.
	cl_time_duration () {}
	cl_time_duration (uintL sec)
		: tv_sec (sec), tv_nsec (0) {}
	cl_time_duration (uintL sec, uintL nsec)
		: tv_sec (sec), tv_nsec (nsec) {}
};

struct cl_time_consumption {
	cl_time_duration realtime;	// elapsed time
	cl_time_duration usertime;	// system's notion of user time/run time
};

extern const cl_time_duration operator- (const cl_timespec&, const cl_timespec&);
extern const cl_timespec operator+ (const cl_timespec&, const cl_time_duration&);
extern const cl_timespec operator- (const cl_timespec&, const cl_time_duration&);
extern const cl_time_duration operator+ (const cl_time_duration&, const cl_time_duration&);
extern const cl_time_duration operator- (const cl_time_duration&, const cl_time_duration&);

extern const cl_timespec cl_current_time ();
extern const cl_time_consumption cl_current_time_consumption ();

// Report a time consumption.
// (Should better be a virtual member function of `cl_time_consumption').
extern void cl_timing_report (std::ostream&, const cl_time_consumption&);

struct cl_timing {
	// Constructor, starts the time interval.
	cl_timing (cl_time_consumption& accumulator);
	cl_timing (std::ostream& destination = std::cerr);
	cl_timing (const char *, std::ostream& destination = std::cerr);
	// Destructor, closes the time interval and does a report.
	~cl_timing ();	
//private:
	cl_time_consumption tmp;
	void (*report_fn) (const cl_timing&);
	void* report_destination;
	const char * comment;
};

// Macro for timing.
// Usage:
//     { CL_TIMING; computation(); }
// or  { CL_TIMING(accumulator); computation(); }
// or  { CL_TIMING(cout); computation(); }
// The timing interval starts immediately and ends at the closing brace.
#define CL_TIMING  CL_TIMING1(__LINE__)
#define CL_TIMING1(line)  CL_TIMING2(line)
#define CL_TIMING2(line)  cl_timing cl_timing_dummy_##line

}  // namespace cln

#endif /* _CL_TIMING_H */