| The Gaudi Framework v32r1 (f65d50dc)

Classes | Namespaces | Macros | Typedefs | Functions
CommonMessaging.h File Reference
`#include "GaudiKernel/GaudiException.h"`
`#include "GaudiKernel/IMessageSvc.h"`
`#include "GaudiKernel/IService.h"`
`#include "GaudiKernel/ISvcLocator.h"`
`#include "GaudiKernel/MsgStream.h"`
`#include "GaudiKernel/SmartIF.h"`
`#include "GaudiKernel/detected.h"`
`#include <boost/thread/tss.hpp>`
`#include <memory>`
`#include <utility>`
Include dependency graph for CommonMessaging.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
class | CommonMessaging< BASE >
class | CommonMessagingBase
class | CommonMessaging< BASE >

## Namespaces
| implementation_detail

## Macros
#define | generate_(method, ret, args)
| Templated class to add the standard messaging functionalities. More...

## Typedefs
template<typename Base >
using | add_name = std::conditional_t< implementation_detail::has_name< Base >::value, Base, implementation_detail::add_name< Base > >
template<typename Base >
using | add_serviceLocator = std::conditional_t< implementation_detail::has_serviceLocator< Base >::value, Base, implementation_detail::add_serviceLocator< Base > >

## Functions
| implementation_detail::generate_ (name, const std::string &,()) generate_(serviceLocator

## Macro Definition Documentation

## ◆ generate_

#define generate_ | ( |  | method,
|  |  | ret,
|  |  | args
| ) |  |

Value:
\
template <typename T> \
using _has_##method = decltype( std::declval<const T&>().method args ); \
\
template <typename T> \
using has_##method = Gaudi::cpp17::is_detected<_has_##method, T>; \
\
template <typename Base> \
struct add_##method : public Base { \
using Base::Base; \
virtual ~add_##method() = default; \
virtual ret method args const = 0; \
};
gaudirun.args
args
Definition: gaudirun.py:307

Templated class to add the standard messaging functionalities.

Definition at line 26 of file CommonMessaging.h.

## Typedef Documentation

## ◆ add_name

template<typename Base >

using add_name = std::conditional_t<implementation_detail::has_name<Base>::value, Base, implementation_detail::add_name<Base> >

Definition at line 50 of file CommonMessaging.h.

## ◆ add_serviceLocator

template<typename Base >

using add_serviceLocator = std::conditional_t<implementation_detail::has_serviceLocator<Base>::value, Base, implementation_detail::add_serviceLocator<Base> >

Definition at line 53 of file CommonMessaging.h.