DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
IssueDeclarationMacro.hpp File Reference
#include <boost/preprocessor/comparison.hpp>
#include <boost/preprocessor/if.hpp>
#include <boost/preprocessor/logical.hpp>
#include <boost/preprocessor/seq.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/preprocessor/tuple.hpp>
Include dependency graph for IssueDeclarationMacro.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ERS_EMPTY
#define ERS_IS_EMPTY(x)
#define ERS_IS_EMPTY_I(contents)
#define ERS_IS_EMPTY_II(contents)
#define ERS_IS_EMPTY_III(contents)
#define ERS_IS_EMPTY_HELPER()
#define ERS_IS_EMPTY_DEF_ERS_IS_EMPTY_TRUE   1,
#define ERS_IS_EMPTY_DEF_ERS_IS_EMPTY_HELPER   0,
#define ERS_TYPE(tuple)
#define ERS_NAME(tuple)
#define ERS_ATTRIBUTE_NAME(_, __, tuple)
#define ERS_ATTRIBUTE_NAME_TYPE(_, __, tuple)
#define ERS_ATTRIBUTE_SERIALIZATION(_, __, tuple)
#define ERS_ATTRIBUTE_ACCESSORS(_, __, tuple)
#define ERS_SET_MESSAGE(message)
#define ERS_PRINT_LIST(decl, attributes)
#define __ERS_DECLARE_ISSUE_BASE__(namespace_name, class_name, base_class_name, message, base_attributes, attributes)
#define __ERS_DEFINE_ISSUE_BASE__( INLINE, namespace_name, class_name, base_class_name, message, base_attributes, attributes)
#define ERS_DECLARE_ISSUE_BASE_HPP(namespace_name, class_name, base_class_name, message, base_attributes, attributes)
#define ERS_DEFINE_ISSUE_BASE_CXX(namespace_name, class_name, base_class_name, message, base_attributes, attributes)
#define ERS_DECLARE_ISSUE_HPP(namespace_name, class_name, message, attributes)
#define ERS_DEFINE_ISSUE_CXX(namespace_name, class_name, message, attributes)
#define ERS_DECLARE_ISSUE_BASE(namespace_name, class_name, base_class_name, message, base_attributes, attributes)
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message, attributes)

Macro Definition Documentation

◆ __ERS_DECLARE_ISSUE_BASE__

#define __ERS_DECLARE_ISSUE_BASE__ ( namespace_name,
class_name,
base_class_name,
message,
base_attributes,
attributes )

Definition at line 58 of file IssueDeclarationMacro.hpp.

◆ __ERS_DEFINE_ISSUE_BASE__

#define __ERS_DEFINE_ISSUE_BASE__ ( INLINE,
namespace_name,
class_name,
base_class_name,
message,
base_attributes,
attributes )

Definition at line 113 of file IssueDeclarationMacro.hpp.

◆ ERS_ATTRIBUTE_ACCESSORS

#define ERS_ATTRIBUTE_ACCESSORS ( _,
__,
tuple )
Value:
ERS_TYPE(tuple) \
BOOST_PP_CAT(get_, ERS_NAME(tuple))() \
{ \
ERS_TYPE(tuple) val; \
ers::Issue::get_value(BOOST_PP_STRINGIZE(ERS_NAME(tuple)), val); \
return val; \
}
#define ERS_TYPE(tuple)
#define ERS_NAME(tuple)

Definition at line 42 of file IssueDeclarationMacro.hpp.

◆ ERS_ATTRIBUTE_NAME

#define ERS_ATTRIBUTE_NAME ( _,
__,
tuple )
Value:
, ERS_NAME(tuple)

Definition at line 36 of file IssueDeclarationMacro.hpp.

◆ ERS_ATTRIBUTE_NAME_TYPE

#define ERS_ATTRIBUTE_NAME_TYPE ( _,
__,
tuple )
Value:
, ERS_TYPE(tuple) ERS_NAME(tuple)

Definition at line 38 of file IssueDeclarationMacro.hpp.

◆ ERS_ATTRIBUTE_SERIALIZATION

#define ERS_ATTRIBUTE_SERIALIZATION ( _,
__,
tuple )
Value:
set_value(BOOST_PP_STRINGIZE(ERS_NAME(tuple)), ERS_NAME(tuple));

Definition at line 40 of file IssueDeclarationMacro.hpp.

◆ ERS_DECLARE_ISSUE

#define ERS_DECLARE_ISSUE ( namespace_name,
class_name,
message,
attributes )
Value:
__ERS_DECLARE_ISSUE_BASE__(namespace_name, class_name, ers::Issue, ERS_EMPTY message, ERS_EMPTY, attributes) \
__ERS_DEFINE_ISSUE_BASE__(inline, namespace_name, class_name, ers::Issue, ERS_EMPTY message, ERS_EMPTY, attributes)
#define __ERS_DECLARE_ISSUE_BASE__(namespace_name, class_name, base_class_name, message, base_attributes, attributes)
#define ERS_EMPTY
Base class for any user define issue.
Definition Issue.hpp:76

Definition at line 177 of file IssueDeclarationMacro.hpp.

◆ ERS_DECLARE_ISSUE_BASE

#define ERS_DECLARE_ISSUE_BASE ( namespace_name,
class_name,
base_class_name,
message,
base_attributes,
attributes )
Value:
__ERS_DECLARE_ISSUE_BASE__(namespace_name, class_name, base_class_name, message, base_attributes, attributes) \
__ERS_DEFINE_ISSUE_BASE__(inline, namespace_name, class_name, base_class_name, message, base_attributes, attributes)

Definition at line 173 of file IssueDeclarationMacro.hpp.

◆ ERS_DECLARE_ISSUE_BASE_HPP

#define ERS_DECLARE_ISSUE_BASE_HPP ( namespace_name,
class_name,
base_class_name,
message,
base_attributes,
attributes )
Value:
namespace_name, class_name, base_class_name, ERS_EMPTY message, ERS_EMPTY base_attributes, ERS_EMPTY attributes)

Definition at line 154 of file IssueDeclarationMacro.hpp.

◆ ERS_DECLARE_ISSUE_HPP

#define ERS_DECLARE_ISSUE_HPP ( namespace_name,
class_name,
message,
attributes )
Value:
ERS_DECLARE_ISSUE_BASE_HPP(namespace_name, class_name, ers::Issue, ERS_EMPTY message, ERS_EMPTY, ERS_EMPTY attributes)
#define ERS_DECLARE_ISSUE_BASE_HPP(namespace_name, class_name, base_class_name, message, base_attributes, attributes)

Definition at line 167 of file IssueDeclarationMacro.hpp.

◆ ERS_DEFINE_ISSUE_BASE_CXX

#define ERS_DEFINE_ISSUE_BASE_CXX ( namespace_name,
class_name,
base_class_name,
message,
base_attributes,
attributes )
Value:
namespace_name, \
class_name, \
base_class_name, \
ERS_EMPTY message, \
ERS_EMPTY base_attributes, \
ERS_EMPTY attributes)
#define __ERS_DEFINE_ISSUE_BASE__( INLINE, namespace_name, class_name, base_class_name, message, base_attributes, attributes)

Definition at line 158 of file IssueDeclarationMacro.hpp.

◆ ERS_DEFINE_ISSUE_CXX

#define ERS_DEFINE_ISSUE_CXX ( namespace_name,
class_name,
message,
attributes )
Value:
ERS_DEFINE_ISSUE_BASE_CXX(namespace_name, class_name, ers::Issue, ERS_EMPTY message, ERS_EMPTY, ERS_EMPTY attributes)
#define ERS_DEFINE_ISSUE_BASE_CXX(namespace_name, class_name, base_class_name, message, base_attributes, attributes)

Definition at line 170 of file IssueDeclarationMacro.hpp.

◆ ERS_EMPTY

#define ERS_EMPTY

Definition at line 23 of file IssueDeclarationMacro.hpp.

◆ ERS_IS_EMPTY

#define ERS_IS_EMPTY ( x)
Value:
#define ERS_IS_EMPTY_HELPER()
#define ERS_IS_EMPTY_I(contents)

Definition at line 25 of file IssueDeclarationMacro.hpp.

◆ ERS_IS_EMPTY_DEF_ERS_IS_EMPTY_HELPER

#define ERS_IS_EMPTY_DEF_ERS_IS_EMPTY_HELPER   0,

Definition at line 31 of file IssueDeclarationMacro.hpp.

◆ ERS_IS_EMPTY_DEF_ERS_IS_EMPTY_TRUE

#define ERS_IS_EMPTY_DEF_ERS_IS_EMPTY_TRUE   1,

Definition at line 30 of file IssueDeclarationMacro.hpp.

◆ ERS_IS_EMPTY_HELPER

#define ERS_IS_EMPTY_HELPER ( )
Value:
ERS_IS_EMPTY_TRUE

Definition at line 29 of file IssueDeclarationMacro.hpp.

◆ ERS_IS_EMPTY_I

#define ERS_IS_EMPTY_I ( contents)
Value:
ERS_IS_EMPTY_II(contents())
#define ERS_IS_EMPTY_II(contents)

Definition at line 26 of file IssueDeclarationMacro.hpp.

◆ ERS_IS_EMPTY_II

#define ERS_IS_EMPTY_II ( contents)
Value:
#define ERS_IS_EMPTY_III(contents)

Definition at line 27 of file IssueDeclarationMacro.hpp.

◆ ERS_IS_EMPTY_III

#define ERS_IS_EMPTY_III ( contents)
Value:
BOOST_PP_TUPLE_ELEM(2, 0, (ERS_IS_EMPTY_DEF_##contents))

Definition at line 28 of file IssueDeclarationMacro.hpp.

◆ ERS_NAME

#define ERS_NAME ( tuple)
Value:
BOOST_PP_SEQ_TAIL(tuple)

Definition at line 34 of file IssueDeclarationMacro.hpp.

◆ ERS_PRINT_LIST

#define ERS_PRINT_LIST ( decl,
attributes )
Value:
BOOST_PP_SEQ_FOR_EACH(decl, _, attributes)

Definition at line 56 of file IssueDeclarationMacro.hpp.

◆ ERS_SET_MESSAGE

#define ERS_SET_MESSAGE ( message)
Value:
std::ostringstream out; \
out << message; \
prepend_message(out.str());

Definition at line 51 of file IssueDeclarationMacro.hpp.

◆ ERS_TYPE

#define ERS_TYPE ( tuple)
Value:
BOOST_PP_SEQ_HEAD(tuple)

Definition at line 33 of file IssueDeclarationMacro.hpp.