The Gaudi Framework  v30r4 (9b837755)
HandleDetail.h File Reference
#include "GaudiKernel/AnyDataWrapper.h"
#include "GaudiKernel/DataObjID.h"
#include "GaudiKernel/DataObject.h"
#include <memory>
#include <stdexcept>
#include <type_traits>
#include <utility>
Include dependency graph for HandleDetail.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Gaudi
 Helper functions to set/get the application return code.
 
 Gaudi::HandleDetail
 

Macros

#define ENABLE_IF(condition)   std::enable_if_t<condition>* = nullptr
 

Typedefs

using Gaudi::HandleDetail::DataObjectPtr = std::unique_ptr< DataObject >
 
template<typename T >
using Gaudi::HandleDetail::DataObjectAndRef = std::pair< DataObjectPtr, const T & >
 

Functions

template<typename T >
constexpr bool Gaudi::HandleDetail::isDataObject ()
 Tells whether type T is a subclass of DataObject. More...
 
template<typename T >
constexpr bool Gaudi::HandleDetail::isRange ()
 Tells whether there is a parameter pack U... such as T = Range<U...> More...
 
template<typename T , ENABLE_IF(isDataObject< T >()&&!isRange< T >()) >
const T & Gaudi::HandleDetail::unwrapDataObject (const DataObject &rawObject)
 T is a subclass of DataObject, and is not a range: we can just cast the pointer provided by the TES as-is. More...
 
template<typename RangeT , ENABLE_IF(isRange< RangeT >()) >
const RangeT Gaudi::HandleDetail::unwrapDataObject (const DataObject &)
 T is a Range<...>: Either the TES contains a Range to be copied, or a container which must be turned into a range spanning its content. More...
 
template<typename T >
DataObjectAndRef< T > Gaudi::HandleDetail::wrapDataObject (DataObjectPtr &&ptr)
 
template<typename T >
DataObjectAndRef< T > Gaudi::HandleDetail::wrapDataObject (DataObject &&data)
 
template<typename T , ENABLE_IF(!isDataObject< T >()) >
DataObjectAndRef< T > Gaudi::HandleDetail::wrapDataObject (T &&data)
 

Macro Definition Documentation

#define ENABLE_IF (   condition)    std::enable_if_t<condition>* = nullptr

Definition at line 49 of file HandleDetail.h.