IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Classes | Namespaces | Macros
DynamicHdrMacro.h File Reference

Macro set to manage dynamic objects (header part) More...

#include <IPSDKUtil/BaseTypes.h>
#include <IPSDKUtil/Dynamic/DynamicObjectTypes.h>

Go to the source code of this file.

Classes

struct  ipsdk::DynamicRegistrator< T >
 registrator class for dynamic objects More...
 

Namespaces

 ipsdk
 Main namespace for IPSDK library.
 

Macros

#define IPSDK_DECLARE_DYNAMIC(libraryName, className)
 macro enabling dynamic properties on class More...
 
#define IPSDK_DECLARE_ABSTRACT_DYNAMIC(libraryName, className)
 macro enabling dynamic properties on abstract class More...
 
#define IPSDK_DECLARE_COPY_SUPPORT(libraryName, className)
 macro enabling copy support More...
 
#define IPSDK_DECLARE_NOCOPY_SUPPORT(libraryName, className)
 macro disabling copy support More...
 
#define IPSDK_DECLARE_DYNAMIC_WITH_COPY(libraryName, className)
 macro enabling dynamic properties on class and copy support More...
 
#define IPSDK_DECLARE_DYNAMIC_WITHOUT_COPY(libraryName, className)
 macro enabling dynamic properties on class and disabling copy support More...
 
#define IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITH_COPY(libraryName, className)
 macro enabling dynamic properties on abstract class and copy support More...
 
#define IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITHOUT_COPY(libraryName, className)
 macro enabling dynamic properties on abstract class and disabling copy support More...
 

Detailed Description

Macro set to manage dynamic objects (header part)

Author
E. Noirfalise
Date
2013/2/15

Macro Definition Documentation

◆ IPSDK_DECLARE_DYNAMIC

#define IPSDK_DECLARE_DYNAMIC (   libraryName,
  className 
)
Value:
public: \
virtual const std::string& getClassName() const; \
static const std::string& getTypeName(); \
virtual ipsdk::BaseDynamicObject* createNew() const; \
virtual ipsdk::DynamicObjectPtr createShared() const; \
protected: \
template <typename _T> \
friend struct ipsdk::DynamicRegistrator; \
static ipsdk::BaseDynamicObject* createNewObject(); \
static ipsdk::DynamicObjectPtr createSharedObject();
Base class for dynamic objects.
Definition: BaseDynamicObject.h:28
boost::shared_ptr< BaseDynamicObject > DynamicObjectPtr
shared pointer to a BaseDynamicObject
Definition: DynamicObjectTypes.h:22
registrator class for dynamic objects
Definition: DynamicHdrMacro.h:24

macro enabling dynamic properties on class

◆ IPSDK_DECLARE_ABSTRACT_DYNAMIC

#define IPSDK_DECLARE_ABSTRACT_DYNAMIC (   libraryName,
  className 
)
Value:
public: \
virtual const std::string& getClassName() const; \
static const std::string& getTypeName();

macro enabling dynamic properties on abstract class

◆ IPSDK_DECLARE_COPY_SUPPORT

#define IPSDK_DECLARE_COPY_SUPPORT (   libraryName,
  className 
)
Value:
public: \
static const bool g_bSupportCopy = true; \
inline bool hasCopySupport() const { \
return g_bSupportCopy; \
} \
className(const className&); \
className& operator=(const className&); \
virtual ipsdk::BaseDynamicObject* duplicate() const; \
virtual ipsdk::DynamicObjectPtr duplicateShared() const; \
protected: \
virtual void copy(const ipsdk::BaseDynamicObject& object);
Base class for dynamic objects.
Definition: BaseDynamicObject.h:28
IPSDK_FORCEINLINE void copy(T *dest, const T *src, ipUInt64 nbElts)
copy function; copies the &#39;nbElts&#39; of the source buffer to the destination buffer, using the instruction set passed as template argument
Definition: copy.h:36
boost::shared_ptr< BaseDynamicObject > DynamicObjectPtr
shared pointer to a BaseDynamicObject
Definition: DynamicObjectTypes.h:22

macro enabling copy support

◆ IPSDK_DECLARE_NOCOPY_SUPPORT

#define IPSDK_DECLARE_NOCOPY_SUPPORT (   libraryName,
  className 
)
Value:
public: \
static const bool g_bSupportCopy = false; \
inline bool hasCopySupport() const { \
return g_bSupportCopy; \
} \
private: \
className(const className&); \
className& operator=(const className&); \
virtual ipsdk::BaseDynamicObject* duplicate() const; \
virtual ipsdk::DynamicObjectPtr duplicateShared() const; \
virtual void copy(const ipsdk::BaseDynamicObject& object);
Base class for dynamic objects.
Definition: BaseDynamicObject.h:28
IPSDK_FORCEINLINE void copy(T *dest, const T *src, ipUInt64 nbElts)
copy function; copies the &#39;nbElts&#39; of the source buffer to the destination buffer, using the instruction set passed as template argument
Definition: copy.h:36
boost::shared_ptr< BaseDynamicObject > DynamicObjectPtr
shared pointer to a BaseDynamicObject
Definition: DynamicObjectTypes.h:22

macro disabling copy support

◆ IPSDK_DECLARE_DYNAMIC_WITH_COPY

#define IPSDK_DECLARE_DYNAMIC_WITH_COPY (   libraryName,
  className 
)
Value:
IPSDK_DECLARE_COPY_SUPPORT(libraryName, className) \
IPSDK_DECLARE_DYNAMIC(libraryName, className)
#define IPSDK_DECLARE_COPY_SUPPORT(libraryName, className)
macro enabling copy support
Definition: DynamicHdrMacro.h:53

macro enabling dynamic properties on class and copy support

◆ IPSDK_DECLARE_DYNAMIC_WITHOUT_COPY

#define IPSDK_DECLARE_DYNAMIC_WITHOUT_COPY (   libraryName,
  className 
)
Value:
IPSDK_DECLARE_NOCOPY_SUPPORT(libraryName, className) \
IPSDK_DECLARE_DYNAMIC(libraryName, className)
#define IPSDK_DECLARE_NOCOPY_SUPPORT(libraryName, className)
macro disabling copy support
Definition: DynamicHdrMacro.h:68

macro enabling dynamic properties on class and disabling copy support

◆ IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITH_COPY

#define IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITH_COPY (   libraryName,
  className 
)
Value:
protected: \
virtual void copy(const ipsdk::BaseDynamicObject& object); \
IPSDK_DECLARE_ABSTRACT_DYNAMIC(libraryName, className)
Base class for dynamic objects.
Definition: BaseDynamicObject.h:28
IPSDK_FORCEINLINE void copy(T *dest, const T *src, ipUInt64 nbElts)
copy function; copies the &#39;nbElts&#39; of the source buffer to the destination buffer, using the instruction set passed as template argument
Definition: copy.h:36

macro enabling dynamic properties on abstract class and copy support

◆ IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITHOUT_COPY

#define IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITHOUT_COPY (   libraryName,
  className 
)
Value:
IPSDK_DECLARE_NOCOPY_SUPPORT(libraryName, className) \
IPSDK_DECLARE_ABSTRACT_DYNAMIC(libraryName, className)
#define IPSDK_DECLARE_NOCOPY_SUPPORT(libraryName, className)
macro disabling copy support
Definition: DynamicHdrMacro.h:68

macro enabling dynamic properties on abstract class and disabling copy support