Gaudi Framework, version v23r2

Home   Generated: Thu Jun 28 2012

extend_interfaces.h

Go to the documentation of this file.
00001 #ifndef GAUDIKERNEL_EXTEND_INTERFACES_H
00002 #define GAUDIKERNEL_EXTEND_INTERFACES_H
00003 
00004 #include "GaudiKernel/IInterface.h"
00005 
00006 // -----------------------------------------------------------------------------
00007 // Interface extension classes
00008 // -----------------------------------------------------------------------------
00012 template <typename I1>
00013 struct GAUDI_API extend_interfaces1: virtual public I1 {
00014 #ifndef __GCCXML__
00015 
00016   typedef typename I1::iid::iids::type ext_iids;
00017 #endif
00018 
00019   virtual ~extend_interfaces1() {}
00020 };
00021 
00025 template <typename I1, typename I2>
00026 struct GAUDI_API extend_interfaces2: virtual public I1, virtual public I2 {
00027 #ifndef __GCCXML__
00028 
00029   typedef typename mpl::fold<
00030     typename I1::iid::iids::type,
00031     typename I2::iid::iids::type,
00032     mpl::insert<mpl::_1,mpl::_2>
00033   >::type ext_iids;
00034 #endif
00035 
00036   virtual ~extend_interfaces2() {}
00037 };
00038 
00042 template <typename I1, typename I2, typename I3>
00043 struct GAUDI_API extend_interfaces3: virtual public I1,
00044                                      virtual public I2,
00045                                      virtual public I3 {
00046 #ifndef __GCCXML__
00047 
00048   typedef typename mpl::fold<
00049     typename I1::iid::iids::type,
00050     typename mpl::fold<
00051         typename I2::iid::iids::type,
00052         typename I3::iid::iids::type,
00053         mpl::insert<mpl::_1,mpl::_2>
00054       >::type,
00055     mpl::insert<mpl::_1,mpl::_2>
00056   >::type ext_iids;
00057 #endif
00058 
00059   virtual ~extend_interfaces3() {}
00060 };
00061 
00065 template <typename I1, typename I2, typename I3, typename I4>
00066 struct GAUDI_API extend_interfaces4: virtual public I1,
00067                                      virtual public I2,
00068                                      virtual public I3,
00069                                      virtual public I4 {
00070 #ifndef __GCCXML__
00071 
00072   typedef typename mpl::fold<
00073     typename I1::iid::iids::type,
00074     typename mpl::fold<
00075       typename I2::iid::iids::type,
00076       typename mpl::fold<
00077         typename I3::iid::iids::type,
00078         typename I4::iid::iids::type,
00079         mpl::insert<mpl::_1,mpl::_2>
00080       >::type,
00081       mpl::insert<mpl::_1,mpl::_2>
00082     >::type,
00083     mpl::insert<mpl::_1,mpl::_2>
00084   >::type ext_iids;
00085 #endif
00086 
00087   virtual ~extend_interfaces4() {}
00088 };
00089 
00090 
00091 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Thu Jun 28 2012 23:27:19 for Gaudi Framework, version v23r2 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004