IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseDynamicObject.h
1 // BaseDynamicObject.h:
3 // --------------------
4 //
14 
15 #ifndef __IPSDKUTIL_BASEDYNAMICOBJECT_H__
16 #define __IPSDKUTIL_BASEDYNAMICOBJECT_H__
17 
21 #include <boost/thread/mutex.hpp>
22 
23 namespace ipsdk {
24 
27 
29 {
30 public:
34  virtual ~BaseDynamicObject() = 0;
36 
37 // methods
38 public:
40  virtual const std::string& getClassName() const;
41 
43  static const std::string& getTypeName();
44 
46  virtual BaseDynamicObject* createNew() const = 0;
47 
49  virtual DynamicObjectPtr createShared() const = 0;
50 
52  virtual bool hasCopySupport() const = 0;
53 
56  virtual BaseDynamicObject* duplicate() const = 0;
57 
60  virtual DynamicObjectPtr duplicateShared() const = 0;
61 
62 protected:
65  virtual void initCtorCopy(const BaseDynamicObject& object) {}
66 
68  virtual void copy(const BaseDynamicObject& object);
69 
70 // attributes
71 protected:
72 
73 };
74 
77 
78 } // end of namespace ipsdk
79 
80 #endif // __IPSDKUTIL_BASEDYNAMICOBJECT_H__
Base class for dynamic objects.
Definition: BaseDynamicObject.h:28
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
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 set to manage dynamic objects (header part)
boost::shared_ptr< BaseDynamicObject > DynamicObjectPtr
shared pointer to a BaseDynamicObject
Definition: DynamicObjectTypes.h:22
Predefined types for dynamic objects management.
#define IPSDKUTIL_API
Import/Export macro for library IPSDKUtil.
Definition: IPSDKUtilExports.h:27
Definition of import/export macro for library.
virtual void initCtorCopy(const BaseDynamicObject &object)
Definition: BaseDynamicObject.h:65