Line data Source code
1 : /*
2 : * DUNE DAQ modification notice:
3 : * This file has been modified from the original ATLAS ers source for the DUNE DAQ project.
4 : * Fork baseline commit: 8267df82a4f6fe6bf02c4014923eba19eddc4614 (2020-04-14).
5 : * Renamed since fork: yes (from ers/AnyIssue.h to include/ers/AnyIssue.hpp).
6 : *
7 : * Original copyright:
8 : * Copyright (C) 2001-2020 CERN for the benefit of the ATLAS collaboration.
9 : * Licensed under the Apache License, Version 2.0.
10 : */
11 :
12 : /*
13 : * AnyIssue.h
14 : * ers
15 : *
16 : * Created by Serguei Kolos on 26.06.10.
17 : * Copyright 2010 CERN. All rights reserved.
18 : *
19 : */
20 :
21 : #ifndef ERS_ANY_ISSUE_H
22 : #define ERS_ANY_ISSUE_H
23 :
24 : /** \file AnyIssue.h
25 : * This file defines the ers::AnyIssue class
26 : */
27 :
28 : #include <ers/Issue.hpp>
29 :
30 : namespace ers
31 : {
32 : class AnyIssue : public ers::Issue
33 : {
34 :
35 : friend class IssueFactory;
36 :
37 : public:
38 0 : AnyIssue( const std::string & type,
39 : const ers::Context & context,
40 : const std::string & message = "" )
41 0 : : ers::Issue( context, message ),
42 0 : m_type( type )
43 0 : { ; }
44 :
45 0 : AnyIssue( const std::string & type,
46 : const inheritance_type & chain,
47 : Severity severity,
48 : const ers::Context & context,
49 : const system_clock::time_point & time,
50 : const std::string & message,
51 : const std::vector<std::string> & qualifiers,
52 : const std::map<std::string, std::string> & parameters,
53 : const ers::Issue * cause = 0 )
54 0 : : ers::Issue( severity, time, context, message, qualifiers, parameters, cause ),
55 0 : m_type( type ),
56 0 : m_inheritance( chain )
57 0 : { ; }
58 :
59 0 : ~AnyIssue() noexcept { ; }
60 :
61 0 : virtual ers::Issue * clone() const
62 0 : { return new AnyIssue( *this ); }
63 :
64 0 : virtual const char * get_class_name() const
65 0 : { return m_type.c_str(); }
66 :
67 0 : virtual inheritance_type get_class_inheritance() const final {
68 0 : return m_inheritance ;
69 : }
70 :
71 0 : virtual void raise() const
72 0 : { throw AnyIssue(*this); }
73 :
74 : private:
75 : std::string m_type;
76 : inheritance_type m_inheritance;
77 : };
78 : }
79 :
80 : #endif
81 :
|