BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/ers/ers-00-00-03/test/test.cxx
Go to the documentation of this file.
1/*
2 * ExampleIssue.h
3 * Test
4 *
5 * Created by Matthias Wiesmann on 24.01.05.
6 * Copyright 2005 CERN. All rights reserved.
7 *
8 */
9
10
11
12#include "ers/ers.h"
13#include "ExampleIssue.h"
14
15
16
17/** \file test.cxx
18 * This file contains a very simple example of using ERS.
19 * Basically, we use the custom issue defined in ExampleIssue.
20 */
21
22/** This function illustrates the usage of range checking macros.
23 * \param n an integer excepted to be between 0 and 42.
24 */
25
26void foo(int n) {
27 ERS_RANGE_CHECK(0,n,42) ;
28 ERS_DEBUG_0("function foo called with value %d",n);
29} // foo
30
31void massive_test() {
33 ERS_DEBUG_0("dumping a lot of log issues");
34 for(int i=0;i<1000000;i++) {
35 ERS_DEBUG_2("dump %d",i);
36 } // for
37} //
38
39int main(int argc, char** argv) {
40 for(int i=1;i<argc;i++) { // we add all parameters as qualifiers
42 } //
43 ers::Context::add_qualifier("ers_test") ; // we add a qualifier to all issues
44 try { // We need to work with a try/catch block
45 massive_test();
46 ers::StreamFactory::set_stream(ers::debug_3,"filter:?!ers_test,ers_failure@default"); // we filter out all issue with qualifier ers_test at level debug_3
47 ERS_DEBUG_3("This should not be displayed");
48 ERS_DEBUG_0("checking static assert");
49 ERS_STATIC_ASSERT(sizeof(int)==4);
50 ERS_DEBUG_0("dispatching custom issue to warning stream");
51 ExampleIssue issue(ERS_HERE,ers::warning,10); // we build an instance of our Issue
52 ers::StreamFactory::dispatch(issue); // dispatch sends it to the correct stream based on severity
53 ERS_DEBUG_0("calling a method with wrong range");
54 foo(43);
55 ERS_DEBUG_0("done - if we reached this point, assertion have been disabled - this can be done by defining the N_DEBUG macro");
56 ERS_DEBUG_0("throwing custom issue");
58 } catch (ers::Issue &e) { // we catch issues and send them to the warning stream
60 }
61 return 0 ;
62} // main
63
#define ERS_HERE
Definition: Context.h:119
const Int_t n
#define ERS_STATIC_ASSERT(expr)
#define ERS_RANGE_CHECK(min, value, max)
Definition: RangeIssue.h:34
#define ERS_DEBUG_0(...)
#define ERS_DEBUG_3(...)
#define ERS_DEBUG_2(...)
Example issue.
Definition: ExampleIssue.h:20
static void add_qualifier(const std::string &qualif)
Definition: Context.cxx:56
Root Issue class.
static void set_stream(severity_t, const std::string &key)
Stream * warning()
Warning stream.
static void dispatch(Issue *i, bool throw_error=false)
Sends an issue to the appropriate stream according to its severity_t.
ers header and documentation file
@ warning
Definition: Core.h:24
@ error
Definition: Core.h:24
@ debug_3
Definition: Core.h:24
@ debug_2
Definition: Core.h:24
int main()
Definition: test_IFile.cxx:11