CommonMessaging.h File Reference
#include "GaudiKernel/IService.h"
#include "GaudiKernel/ISvcLocator.h"
#include "GaudiKernel/IMessageSvc.h"
#include "GaudiKernel/MsgStream.h"
#include "GaudiKernel/SmartIF.h"
#include "GaudiKernel/GaudiException.h"
#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

struct  implementation_detail::void_t< typename >
 
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 T >
using implementation_detail::is_valid_t = typename void_t< T >::type
 
template<typename Base >
using add_name = typename std::conditional< implementation_detail::has_name< Base >::value, Base, implementation_detail::add_name< Base >>::type
 
template<typename Base >
using add_serviceLocator = typename std::conditional< implementation_detail::has_serviceLocator< Base >::value, Base, implementation_detail::add_serviceLocator< Base >>::type
 

Functions

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

Macro Definition Documentation

#define generate_ (   method,
  ret,
  args 
)
Value:
\
template <typename T, typename SFINAE = void> \
struct has_ ## method : std::false_type {}; \
template <typename T> \
struct has_ ## method<T, is_valid_t<decltype(std::declval<const T&>().method args)>> : std::true_type {}; \
\
template <typename Base> \
struct add_ ## method : public Base { \
using Base::Base; \
virtual ~add_ ## method () = default; \
virtual ret method args const = 0; \
};

Templated class to add the standard messaging functionalities.

Definition at line 24 of file CommonMessaging.h.

Typedef Documentation

template<typename Base >
using add_name = typename std::conditional<implementation_detail::has_name<Base>::value, Base, implementation_detail::add_name< Base>>::type

Definition at line 49 of file CommonMessaging.h.

template<typename Base >
using add_serviceLocator = typename std::conditional<implementation_detail::has_serviceLocator<Base>::value, Base, implementation_detail::add_serviceLocator< Base>>::type

Definition at line 52 of file CommonMessaging.h.