From 7a54c7fe29b28250893adfa5d491dee1014937e7 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 27 Sep 2017 09:33:56 +0200 Subject: [PATCH] feat(c-wrapper): better names --- src/c-wrapper/internal/c-tools.h | 82 ++++++++++++++------------------ 1 file changed, 35 insertions(+), 47 deletions(-) diff --git a/src/c-wrapper/internal/c-tools.h b/src/c-wrapper/internal/c-tools.h index 9d6e90999..6f886310e 100644 --- a/src/c-wrapper/internal/c-tools.h +++ b/src/c-wrapper/internal/c-tools.h @@ -35,23 +35,20 @@ LINPHONE_BEGIN_NAMESPACE template -struct CppTypeToCType { +struct CppTypeMetaInfo { enum { defined = false, isSubtype = false }; - typedef void type; + typedef void cType; }; template -struct CTypeToCppType { +struct CTypeMetaInfo { enum { defined = false }; - typedef void type; + typedef void cppType; }; -template -struct CObjectInitializer {}; - class Wrapper { private: template @@ -64,9 +61,9 @@ private: template struct IsDefinedCppObject { enum { - value = CppTypeToCType::defined && ( - !CppTypeToCType::isSubtype || - std::is_base_of::type>::type, CppType>::value + value = CppTypeMetaInfo::defined && ( + !CppTypeMetaInfo::isSubtype || + std::is_base_of::cType>::cppType, CppType>::value ) }; }; @@ -116,7 +113,7 @@ public: template< typename CType, - typename CppType = typename CTypeToCppType::type, + typename CppType = typename CTypeMetaInfo::cppType, typename = typename std::enable_if::value, CppType>::type > static constexpr std::shared_ptr getCppPtrFromC (CType *cObject) { @@ -125,7 +122,7 @@ public: template< typename CType, - typename CppType = typename CTypeToCppType::type, + typename CppType = typename CTypeMetaInfo::cppType, typename = typename std::enable_if::value, CppType>::type > static constexpr std::shared_ptr getCppPtrFromC (const CType *cObject) { @@ -134,7 +131,7 @@ public: template< typename CType, - typename CppType = typename CTypeToCppType::type, + typename CppType = typename CTypeMetaInfo::cppType, typename = typename std::enable_if::value, CppType>::type > static constexpr CppType *getCppPtrFromC (CType *cObject) { @@ -143,7 +140,7 @@ public: template< typename CType, - typename CppType = typename CTypeToCppType::type, + typename CppType = typename CTypeMetaInfo::cppType, typename = typename std::enable_if::value, CppType>::type > static constexpr const CppType *getCppPtrFromC (const CType *cObject) { @@ -185,15 +182,15 @@ public: typename CppType, typename = typename std::enable_if::value, CppType>::type > - static inline typename CppTypeToCType::type *getCBackPtr (const std::shared_ptr &cppObject) { - typedef typename CppTypeToCType::type RetType; + static inline typename CppTypeMetaInfo::cType *getCBackPtr (const std::shared_ptr &cppObject) { + typedef typename CppTypeMetaInfo::cType RetType; Variant variant = cppObject->getProperty("LinphonePrivate::Wrapper::cBackPtr"); void *value = variant.getValue(); if (value) return reinterpret_cast(value); - RetType *cObject = CObjectInitializer::init(); + RetType *cObject = CppTypeMetaInfo::init(); setCppPtrFromC(cObject, cppObject); return cObject; } @@ -202,7 +199,7 @@ public: typename CppType, typename = typename std::enable_if::value, CppType>::type > - static inline typename CppTypeToCType::type *getCBackPtr (CppType *cppObject) { + static inline typename CppTypeMetaInfo::cType *getCBackPtr (CppType *cppObject) { return getCBackPtr(std::static_pointer_cast(cppObject->shared_from_this())); } @@ -210,15 +207,15 @@ public: typename CppType, typename = typename std::enable_if::value, CppType>::type > - static inline typename CppTypeToCType::type *getCBackPtr (const CppType *cppObject) { - typedef typename CppTypeToCType::type RetType; + static inline typename CppTypeMetaInfo::cType *getCBackPtr (const CppType *cppObject) { + typedef typename CppTypeMetaInfo::cType RetType; Variant v = cppObject->getProperty("LinphonePrivate::Wrapper::cBackPtr"); void *value = v.getValue(); if (value) return reinterpret_cast(value); - RetType *cObject = CObjectInitializer::init(); + RetType *cObject = CppTypeMetaInfo::init(); setCppPtrFromC(cObject, cppObject); return cObject; } @@ -285,7 +282,7 @@ public: template< typename CType, - typename CppType = typename CTypeToCppType::type, + typename CppType = typename CTypeMetaInfo::cppType, typename = typename std::enable_if::value, CppType>::type > static inline std::list> getResolvedCppListFromCList (const bctbx_list_t *cList) { @@ -297,7 +294,7 @@ public: template< typename CType, - typename CppType = typename CTypeToCppType::type, + typename CppType = typename CTypeMetaInfo::cppType, typename = typename std::enable_if::value, CppType>::type > static inline std::list getResolvedCppListFromCList (const bctbx_list_t *cList) { @@ -352,54 +349,45 @@ LINPHONE_END_NAMESPACE LINPHONE_BEGIN_NAMESPACE \ class CPP_TYPE; \ template<> \ - struct CppTypeToCType { \ + struct CppTypeMetaInfo { \ enum { \ defined = true, \ isSubtype = false \ }; \ - typedef Linphone ## C_TYPE type; \ - }; \ - template<> \ - struct CTypeToCppType { \ - enum { defined = true }; \ - typedef CPP_TYPE type; \ - }; \ - template<> \ - struct CObjectInitializer { \ + typedef Linphone ## C_TYPE cType; \ static inline Linphone ## C_TYPE *init () { \ return _linphone_ ## C_TYPE ## _init(); \ } \ }; \ + template<> \ + struct CTypeMetaInfo { \ + enum { defined = true }; \ + typedef CPP_TYPE cppType; \ + }; \ LINPHONE_END_NAMESPACE #define L_REGISTER_SUBTYPE(CPP_TYPE, CPP_SUBTYPE) \ LINPHONE_BEGIN_NAMESPACE \ class CPP_SUBTYPE; \ - static_assert(CppTypeToCType::defined, "Type base is not defined"); \ + static_assert(CppTypeMetaInfo::defined, "Base type is not defined"); \ template<> \ - struct CppTypeToCType { \ + struct CppTypeMetaInfo { \ enum { \ defined = true, \ isSubtype = true \ }; \ - typedef CppTypeToCType::type type; \ - }; \ - template<> \ - struct CObjectInitializer { \ - static inline typename CppTypeToCType::type *init () { \ - return CObjectInitializer::init(); \ + typedef CppTypeMetaInfo::cType cType; \ + static inline typename CppTypeMetaInfo::cType *init () { \ + return CppTypeMetaInfo::init(); \ } \ }; \ LINPHONE_END_NAMESPACE -#define L_ASSERT_C_TYPE(C_TYPE) \ - static_assert(LINPHONE_NAMESPACE::CTypeToCppType::defined, "Type is not defined."); \ - #define L_CPP_TYPE_OF_C_TYPE(C_TYPE) \ - LINPHONE_NAMESPACE::CTypeToCppType::type + LINPHONE_NAMESPACE::CTypeMetaInfo::cppType #define L_CPP_TYPE_OF_C_OBJECT(C_OBJECT) \ - LINPHONE_NAMESPACE::CTypeToCppType::type>::type>::type + LINPHONE_NAMESPACE::CTypeMetaInfo::type>::type>::cppType // ----------------------------------------------------------------------------- // C object declaration. @@ -425,7 +413,7 @@ LINPHONE_END_NAMESPACE // Declare clonable wrapped C object. #define L_DECLARE_C_CLONABLE_STRUCT_IMPL(C_TYPE, ...) \ - L_ASSERT_C_TYPE(C_TYPE) \ + static_assert(LINPHONE_NAMESPACE::CTypeMetaInfo::defined, "Type is not defined."); \ struct _Linphone ## C_TYPE { \ belle_sip_object_t base; \ L_CPP_TYPE_OF_C_TYPE(C_TYPE) *cppPtr; \