Defines

src/hpp/dds/core/refmacros.hpp File Reference

#include <dds/core/macros.hpp>
#include <dds/core/ref_traits.hpp>

Go to the source code of this file.

Defines

#define DECLARE_TYPE_TRAITS(TYPE)
#define OMG_DDS_REF_TYPE_BASE(TYPE, BASE, DELEGATE)
#define OMG_DDS_REF_TYPE_BASE_T(TYPE, BASE, T_PARAM, DELEGATE)
#define OMG_DDS_REF_TYPE_DELEGATE(TYPE, BASE, DELEGATE)
#define OMG_DDS_REF_TYPE_DELEGATE_T(TYPE, BASE, T_PARAM, DELEGATE)
#define OMG_DDS_REF_TYPE_NODC(TYPE, BASE, DELEGATE)
#define OMG_DDS_REF_TYPE_NODC_T(TYPE, BASE, T_PARAM, DELEGATE)
#define DDS_PTR_CTOR_REF_TYPE(TYPE, BASE, DELEGATE)
#define OMG_DDS_REF_TYPE(TYPE, BASE, DELEGATE)
#define OMG_DDS_REF_TYPE_T(TYPE, BASE, T_PARAM, DELEGATE)

Define Documentation

#define DDS_PTR_CTOR_REF_TYPE (   TYPE,
  BASE,
  DELEGATE 
)

Definition at line 148 of file refmacros.hpp.

#define DECLARE_TYPE_TRAITS (   TYPE  ) 
Value:
typedef TYPE  TYPE##_T;\
   typedef typename ::dds::core::smart_ptr_traits<TYPE>::ref_type       TYPE##_REF_T;\
   typedef typename ::dds::core::smart_ptr_traits<TYPE>::weak_ref_type  TYPE##_WEAK_REF_T;

Definition at line 29 of file refmacros.hpp.

#define OMG_DDS_REF_TYPE (   TYPE,
  BASE,
  DELEGATE 
)
Value:
OMG_DDS_REF_TYPE_NODC(TYPE, BASE, DELEGATE) \
   TYPE() { }

Definition at line 194 of file refmacros.hpp.

#define OMG_DDS_REF_TYPE_BASE (   TYPE,
  BASE,
  DELEGATE 
)
Value:
public: \
typedef BASE< DELEGATE >                                                  BASE_T;\
public:\
explicit TYPE(DELEGATE_T* p)\
: BASE< DELEGATE_T >(p) \
{  }\
public:\
explicit TYPE(const DELEGATE_REF_T& ref) \
    : BASE<DELEGATE_T>(ref)\
      { }\
\
template <typename H__> \
TYPE(const H__& h)    \
: BASE< DELEGATE_T >(h) \
{ \
    OMG_DDS_STATIC_ASSERT((dds::core::is_base_of<typename TYPE::DELEGATE_T, typename H__::DELEGATE_T>::value)); \
    this->dds::core::Reference<DELEGATE>::impl_ = h.delegate();\
}

Definition at line 47 of file refmacros.hpp.

#define OMG_DDS_REF_TYPE_BASE_T (   TYPE,
  BASE,
  T_PARAM,
  DELEGATE 
)
Value:
public: \
typedef BASE< T_PARAM, DELEGATE > BASE_T; \
public: \
explicit TYPE(DELEGATE_T* p) \
    : BASE< T_PARAM, DELEGATE >(p) \
      {  } \
public: \
explicit TYPE(const DELEGATE_REF_T& ref) \
    : BASE< T_PARAM, DELEGATE >(ref) \
      { } \
\
template <typename H__> \
TYPE(const H__& h) \
: BASE< T_PARAM, DELEGATE >(h) \
{ \
    OMG_DDS_STATIC_ASSERT((dds::core::is_base_of<typename TYPE::DELEGATE_T, typename H__::DELEGATE_T>::value)); \
    this->dds::core::Reference< DELEGATE< T_PARAM > >::impl_ = h.delegate(); \
}

Definition at line 68 of file refmacros.hpp.

#define OMG_DDS_REF_TYPE_DELEGATE (   TYPE,
  BASE,
  DELEGATE 
)
Value:
public: \
typedef DELEGATE                                                          DELEGATE_T;   \
typedef typename ::dds::core::smart_ptr_traits< DELEGATE >::ref_type      DELEGATE_REF_T; \
typedef typename ::dds::core::smart_ptr_traits< DELEGATE >::weak_ref_type DELEGATE_WEAK_REF_T; \
\
private:\
    const typename ::dds::core::Reference< DELEGATE >::DELEGATE_REF_T& impl() const \
    { return ::dds::core::Reference< DELEGATE >::impl_; }\
    typename ::dds::core::Reference< DELEGATE >::DELEGATE_REF_T& impl() \
    { return ::dds::core::Reference< DELEGATE >::impl_; }\
\
public:\
template <typename T__> \
TYPE& \
operator=(const T__& rhs) {\
    OMG_DDS_STATIC_ASSERT((dds::core::is_base_of<typename TYPE::DELEGATE_T, typename T__::DELEGATE_T>::value));\
    if (this != (TYPE*)&rhs) \
        *this = TYPE(rhs); \
    return *this; \
}

Definition at line 89 of file refmacros.hpp.

#define OMG_DDS_REF_TYPE_DELEGATE_T (   TYPE,
  BASE,
  T_PARAM,
  DELEGATE 
)
Value:
public: \
typedef DELEGATE< T_PARAM >                                               DELEGATE_T;   \
typedef typename ::dds::core::smart_ptr_traits< DELEGATE< T_PARAM > >::ref_type \
DELEGATE_REF_T; \
typedef typename ::dds::core::smart_ptr_traits< DELEGATE< T_PARAM > >::weak_ref_type \
DELEGATE_WEAK_REF_T; \
\
private:\
    const typename ::dds::core::Reference< DELEGATE< T_PARAM > >::DELEGATE_REF_T& impl() const \
    { return ::dds::core::Reference< DELEGATE< T_PARAM > >::impl_; }\
    typename ::dds::core::Reference< DELEGATE< T_PARAM > >::DELEGATE_REF_T& impl() \
    { return ::dds::core::Reference< DELEGATE< T_PARAM > >::impl_; }\
\
public:\
template <typename T__> \
TYPE& \
operator=(const T__& rhs) {\
    OMG_DDS_STATIC_ASSERT((dds::core::is_base_of<typename TYPE::DELEGATE_T, typename T__::DELEGATE_T>::value));\
    if (this != (TYPE*)&rhs) \
        *this = TYPE(rhs); \
    return *this; \
}

Definition at line 112 of file refmacros.hpp.

#define OMG_DDS_REF_TYPE_NODC (   TYPE,
  BASE,
  DELEGATE 
)
Value:
OMG_DDS_REF_TYPE_DELEGATE(TYPE, BASE, DELEGATE)     \
OMG_DDS_REF_TYPE_BASE(TYPE, BASE, DELEGATE)         \
public:

Definition at line 137 of file refmacros.hpp.

#define OMG_DDS_REF_TYPE_NODC_T (   TYPE,
  BASE,
  T_PARAM,
  DELEGATE 
)
Value:
OMG_DDS_REF_TYPE_DELEGATE_T(TYPE, BASE, T_PARAM, DELEGATE)     \
OMG_DDS_REF_TYPE_BASE_T(TYPE, BASE, T_PARAM, DELEGATE)         \
public:

Definition at line 143 of file refmacros.hpp.

#define OMG_DDS_REF_TYPE_T (   TYPE,
  BASE,
  T_PARAM,
  DELEGATE 
)
Value:
OMG_DDS_REF_TYPE_NODC_T(TYPE, BASE, T_PARAM, DELEGATE) \
   TYPE() { }

Definition at line 198 of file refmacros.hpp.