The Gaudi Framework
v30r3 (a5ef0a68)
|
#include "GaudiKernel/Kernel.h"
#include "GaudiKernel/StatusCode.h"
#include "GaudiKernel/System.h"
#include <ostream>
#include <type_traits>
#include <typeinfo>
#include "GaudiKernel/extend_interfaces.h"
#include "GaudiKernel/extends.h"
#include "GaudiKernel/implements.h"
Go to the source code of this file.
Namespaces | |
Gaudi | |
Helper functions to set/get the application return code. | |
Gaudi::meta | |
Gaudi::meta::detail | |
Gaudi::iid_cast_details | |
Macros | |
#define | DeclareInterfaceID(iface, major, minor) |
Macro to declare the interface ID when using the new mechanism of extending and implementing interfaces. More... | |
Typedefs | |
template<typename... Is> | |
using | Gaudi::meta::unique_interface_list = detail::appendN< interface_list< Is... >, interface_list<>> |
Functions | |
template<typename I > | |
constexpr void * | Gaudi::iid_cast_details::void_cast (const I *i) |
template<typename... Is> | |
std::vector< std::string > | Gaudi::getInterfaceNames (Gaudi::interface_list< Is... >) |
template<typename... Is, typename P > | |
void * | Gaudi::iid_cast (const InterfaceID &tid, Gaudi::interface_list< Is... >, P *ptr) |
template<typename TARGET > | |
TARGET * | Gaudi::Cast (IInterface *i) |
Cast a IInterface pointer to an IInterface specialization (TARGET). More... | |
template<typename TARGET > | |
const TARGET * | Gaudi::Cast (const IInterface *i) |
Cast a IInterface pointer to an IInterface specialization (TARGET). More... | |
template<class I > | |
bool | isValidInterface (I *i) |
Templated function that throws an exception if the version if the interface implemented by the object behind the interface is incompatible. More... | |
std::ostream & | operator<< (std::ostream &s, const InterfaceID &id) |
ostream operator for InterfaceID. Needed by PluginSvc More... | |
template<class DEST , class SRC > | |
DEST ** | pp_cast (SRC **ptr) |
Small function to be used instead of the construct (void**)&pointer, which produces, on gcc 4.1 optimized, the warning warning: dereferencing type-punned pointer will break strict-aliasing rules The assempler code produced is equivalent to the one with the direct cast. More... | |
#define DeclareInterfaceID | ( | iface, | |
major, | |||
minor | |||
) |
Macro to declare the interface ID when using the new mechanism of extending and implementing interfaces.
Definition at line 13 of file IInterface.h.
bool isValidInterface | ( | I * | i | ) |
Templated function that throws an exception if the version if the interface implemented by the object behind the interface is incompatible.
This is the case if the major version differs or that the minor version of the client is bigger than of the implementer.
Definition at line 378 of file IInterface.h.
|
inline |
ostream operator for InterfaceID. Needed by PluginSvc
Definition at line 388 of file IInterface.h.
|
inline |
Small function to be used instead of the construct (void**)&pointer, which produces, on gcc 4.1 optimized, the warning warning: dereferencing type-punned pointer will break strict-aliasing rules
The assempler code produced is equivalent to the one with the direct cast.
The function can be used als to replace the construct (IInterface *&)m_MySvc. Replacement rules:
(void**)&pointer | pp_cast<void>(&pointer) |
(IInterface *&)m_mySvc | *pp_cast<IInterface>(&m_mySvc) |
Definition at line 406 of file IInterface.h.