This file is indexed.

/usr/include/magics/MagLog.h is in libmagics++-dev 2.30.0-5.

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
/*
 * (C) Copyright 1996-2016 ECMWF.
 * 
 * This software is licensed under the terms of the Apache Licence Version 2.0
 * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 
 * In applying this licence, ECMWF does not waive the privileges and immunities 
 * granted to it by virtue of its status as an intergovernmental organisation nor
 * does it submit to any jurisdiction.
 */

/*! \file MagLog.h
    \brief Definition of log class.
    \author Meteorological Visualisation Section, ECMWF

    Started: Jan 2004

*/

#ifndef MPPMagLog_H
#define MPPMagLog_H

#include "magics.h"
#include <fstream>
using std::ofstream;

namespace magics {


class ErrorReporter
{
public:
	ErrorReporter() : errors_(0), warnings_(0) {}
	void error()  const { errors_++; }
	void warning() const { warnings_++; }
	void report(ostream&) const;

protected:
	mutable int errors_;
	mutable int warnings_;
};

class MagicsObserver;

class MagLog {

public:
	MagLog();
	//! Destructor
	~MagLog();
	
	

// -- Methods
	static ostream& warning();
	static ostream& debug();
	static ostream& info();
	static ostream& userInfo();
	static ostream& error();
	static ostream& fatal();
	static ostream& dev();
	static ostream& profile();
	static ostream& progress();
	static void progress(const string&);
	
	static void broadcast();

	static void devMessage(bool dev = true)
		 { log_.dev_ = dev; }
	
	static void infoMessage(bool info = true)
		 { log_.info_ = info; }
	
	static void userInfoMessage(bool info = true)
		 { log_.userInfo_ = info; }

	static void warningMessage(bool warning = true)
		 { log_.warning_ = warning; }

	static void debugMessage(bool debug = true)
		 { log_.debug_ = debug; }

	static void errorMessage(bool error = true)
		 { log_.error_ = error; }
	
	static void profilingMessage(bool error = true)
			 { log_.error_ = error; }

	static void fatalMessage(bool fatal = true)
		 { log_.fatal_ = fatal; }

	static void header(bool header)
		 { header_ = header; }

	static void setReporter(const ErrorReporter* reporter) { log_.reporter_ = reporter; }
	static void registerObserver(MagicsObserver* observer) { log_.observers_.push_back(observer); }
	static void unregisterObserver(MagicsObserver* observer);

protected:
// -- Methods
	 void print(ostream&) const;
	 const ErrorReporter* reporter_;

private:
// No copy allowed
	MagLog(const MagLog&);
	MagLog& operator=(const MagLog&);

// -- Members
	static MagLog log_;
	static bool header_;

	ofstream devnull_;
	bool debug_;
	bool dev_;
	bool info_;
	bool userInfo_;	
	bool warning_;
	bool error_;
	bool fatal_;
	bool profiling_;

	string stamp_;
	
	int warnings_;
	
	ostringstream infostream_;
	ostringstream warningstream_;
	ostringstream errorstream_;
	ostringstream progressstream_;
	vector<MagicsObserver*> observers_;

// -- Friends
	friend ostream& operator<<(ostream& s,const MagLog& p)
		{ p.print(s); return s; }
};

#define LOGDEV(a) MagLog::dev() << __FUNCTION__ << "--->" << #a << " = " << a << "\n";
#define VALGRIND  MagLog::dev() << "valgrind----->" << __FUNCTION__ << "\n";
}
#endif