15 #ifndef __IPSDKUTIL_DYNAMICHDRMACRO_H__ 16 #define __IPSDKUTIL_DYNAMICHDRMACRO_H__ 32 #define IPSDK_DECLARE_DYNAMIC(libraryName, className) \ 34 virtual const std::string& getClassName() const; \ 35 static const std::string& getTypeName(); \ 36 virtual ipsdk::BaseDynamicObject* createNew() const; \ 37 virtual ipsdk::DynamicObjectPtr createShared() const; \ 39 template <typename _T> \ 40 friend struct ipsdk::DynamicRegistrator; \ 41 static ipsdk::BaseDynamicObject* createNewObject(); \ 42 static ipsdk::DynamicObjectPtr createSharedObject(); 46 #define IPSDK_DECLARE_ABSTRACT_DYNAMIC(libraryName, className) \ 48 virtual const std::string& getClassName() const; \ 49 static const std::string& getTypeName(); 53 #define IPSDK_DECLARE_COPY_SUPPORT(libraryName, className) \ 55 static const bool g_bSupportCopy = true; \ 56 inline bool hasCopySupport() const { \ 57 return g_bSupportCopy; \ 59 className(const className&); \ 60 className& operator=(const className&); \ 61 virtual ipsdk::BaseDynamicObject* duplicate() const; \ 62 virtual ipsdk::DynamicObjectPtr duplicateShared() const; \ 64 virtual void copy(const ipsdk::BaseDynamicObject& object); 68 #define IPSDK_DECLARE_NOCOPY_SUPPORT(libraryName, className) \ 70 static const bool g_bSupportCopy = false; \ 71 inline bool hasCopySupport() const { \ 72 return g_bSupportCopy; \ 75 className(const className&); \ 76 className& operator=(const className&); \ 77 virtual ipsdk::BaseDynamicObject* duplicate() const; \ 78 virtual ipsdk::DynamicObjectPtr duplicateShared() const; \ 79 virtual void copy(const ipsdk::BaseDynamicObject& object); 83 #define IPSDK_DECLARE_DYNAMIC_WITH_COPY(libraryName, className) \ 84 IPSDK_DECLARE_COPY_SUPPORT(libraryName, className) \ 85 IPSDK_DECLARE_DYNAMIC(libraryName, className) 89 #define IPSDK_DECLARE_DYNAMIC_WITHOUT_COPY(libraryName, className) \ 90 IPSDK_DECLARE_NOCOPY_SUPPORT(libraryName, className) \ 91 IPSDK_DECLARE_DYNAMIC(libraryName, className) 95 #define IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITH_COPY(libraryName, className) \ 97 virtual void copy(const ipsdk::BaseDynamicObject& object); \ 98 IPSDK_DECLARE_ABSTRACT_DYNAMIC(libraryName, className) 102 #define IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITHOUT_COPY(libraryName, className) \ 103 IPSDK_DECLARE_NOCOPY_SUPPORT(libraryName, className) \ 104 IPSDK_DECLARE_ABSTRACT_DYNAMIC(libraryName, className) 109 #endif // __IPSDKUTIL_DYNAMICHDRMACRO_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
registrator class for dynamic objects
Definition: DynamicHdrMacro.h:24
Base types for multiplatform compatibility.
Predefined types for dynamic objects management.