This file is indexed.

/usr/include/diagnostics/type.hpp is in libdiagnostics-dev 0.3.3-12.

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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
/*
 * Diagnostics - a unified framework for code annotation, logging,
 * program monitoring, and unit-testing.
 *
 * Copyright (C) 2009 Christian Schallhart <christian@schallhart.net>,
 *                    Michael Tautschnig <tautschnig@forsyte.de>
 *               2008 model.in.tum.de group, FORSYTE group
 *               2006-2007 model.in.tum.de group
 *               2002-2005 Christian Schallhart
 *  
 * 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */


/**
 * @file diagnostics/frame/type.hpp
 *
 * @brief [LEVEL: beta] definition of the message and record types:
 * @ref diagnostics::Type_t
 *
 * $Id: type.hpp,v 1.15 2005/06/23 09:54:20 esdentem Exp $
 *
 * @author Christian Schallhart
 *
 * @test diagnostics/frame/type.t.cpp
 */

#ifndef DIAGNOSTICS__FRAME__TYPE_HPP__INCLUDE_GUARD
#define DIAGNOSTICS__FRAME__TYPE_HPP__INCLUDE_GUARD

#include <diagnostics/frame/namespace.hpp>

DIAGNOSTICS_NAMESPACE_BEGIN;

/**
 * @brief The message types determine the meaning of a log message. It
 * has no consequences on format of the fields of a @ref
 * ::diagnostics::Record -- but it does determine (together with other
 * parameters) whether is treated as an error-indication by the
 * unittest framework (see @ref
 * ::diagnostics::unittest::Test_Run_Result for details).
 */
typedef enum {
    /**
     * Entering a block. What is free to the user.
     */
    TYPE_BLOCK_ENTER=0,
    /**
     * Leaving a block -- all values (including file_name, base_file_name and line)
     * are identical to those of the corresponding TYPE_BLOCK_ENTER.
     */
    TYPE_BLOCK_EXIT=1,

    /**
     * Entering and leaving a free procedure. What contians the name of
     * the method -- and can be use log the invocation parameters in
     * addition.
     */
    TYPE_PROCEDURE_ENTER=2,
    /**
     * Leaving a procedure -- all values (including file_name, base_file_name and line)
     * are identical to those of the corresponding TYPE_PROCEDURE_ENTER.
     */
    TYPE_PROCEDURE_EXIT=3,

    /**
     * Entering and leaving a class method. What contians the name of
     * the method -- and can be use log the invocation parameters in
     * addition.
     */
    TYPE_METHOD_ENTER=4,
    /**
     * Leaving a method -- all values (including file_name, base_file_name and line)
     * are identical to those of the corresponding TYPE_METHOD_ENTER.
     */
    TYPE_METHOD_EXIT=5,

    /**
     * Human readable trace message.
     */
    TYPE_TRACE=6,

    /**
     * Binary readable trace message.
     */
    TYPE_TRACE_BINARY=7,

    /**
     * A failed assertion, i.e., a error condition which was not
     * expected to happen.
     *
     * This is always treated as an error by the unittest of
     * diagnostics (see unittest.hpp) independently of the @ref
     * Level_t.
     */
    TYPE_FAILED_ASSERTION=8,

    /**
     * A failed check, i.e., a error condition which was 
     * expected to happen due to unproper use of a module or due
     * to external circumstances (e.g. network down). 
     *
     * Whehter such an event is treated as an error or not by the
     * unittest of diagnostics (see unittest.hpp) depends on the level
     * of the event and the current build level (see @ref
     * unittest::Run_Test_Suite_Traversal). However, if such a message
     * at level @ref LEVEL_TEST occurs, a test is treated as invalid,
     * i.e., it was not possible to execute the test to come to a
     * conclusive result.
    */
    TYPE_FAILED_CHECK=9,

    /**
     * An exception occured when none was expected. What described the
     * unexpected exception.
     *
     * Unittest treats this an error, independently of the level.
     */
    TYPE_UNEXPECTED_EXCEPTION=10,

    /**
     * An exception occured when another one was expected. The what 
     *
     * Unittest treats this an error iff it occurs at @ref LEVEL_TEST.
     */
    TYPE_WRONG_EXCEPTION=11,

    /**
     * No exception occured when an exception was expected. The what
     * string describes the expected exception.
     *
     * Unittest treats this an error iff it occurs at @ref LEVEL_TEST.
     */
    TYPE_MISSING_EXCEPTION=12,

    /**
     * A testcase started. What contains the testcase name.
     */
    TYPE_TESTCASE_ENTER=13,
    /**
     * Leaving a testcase -- all values (including file_name,
     * base_file_name and line) are identical to those of the
     * corresponding TYPE_TESTCASE_ENTER.
     */
    TYPE_TESTCASE_EXIT=14,

    /**
     * Whenever a logger is registered, it first receives a message of
     * this type at @ref LEVEL_SYSTEM. All fields are blank with the
     * exception of name, what and line.
     *
     * If the logger is one of the initial ones (set by @ref
     * set_initial_loggers), then name says so, what contains a time
     * stamp of the start up, and line is equal to 1.
     *
     * If the logger is not an initial one, then the name of message
     * says so, what contains two time stamps (framework activation
     * and registration) and line is to 0.
     */
    TYPE_LOG_OPEN=15,
    
    /**
     * Whenever a logger is unregistered, it receives beforehand such
     * a message at @ref LEVEL_SYSTEM. 
	 *
	 * The what field inidicates whether the whole framework is
	 * shutting down or whether the logger is unregistered.
     */
    TYPE_LOG_CLOSE=16
} Type_t;

/**
 * @brief The maximum integer value of @ref diagnostics::Type_t
 */
#define TYPE_MAX TYPE_LOG_CLOSE


/**
 * @brief Returns meaningful string for a record type. If the
 * type is unkown, i.e., a value not defined in the enum is passed,
 * "UNKOWN" is returned.
 *
 * @throw never throws (not declared for efficiency)
 */
inline char const * type_to_string(Type_t const type) 
{
    char const * const type_map[]= 
	{ "block_enter",
	  "block_exit",
	  
	  "procedure_enter",
	  "procedure_exit",
				
	  "method_enter",
	  "method_exit",
				
	  "trace",
	  "trace_binary",
				
	  "failed_assertion",
	  "failed_check",
				
	  "unexpected_exception",
	  "wrong_exception",
	  "missing_exception",

	  "testcase_enter",
	  "testcase_exit",

	  "log_open",
	  "log_close",
 
          "UNKNOWN"};

    return (type>TYPE_MAX ? type_map[TYPE_MAX+1] : type_map[type]);
}


DIAGNOSTICS_NAMESPACE_END;

#endif

// vim:ts=4:sw=4