Artec 3D Scanning SDK  2.0
IBlob.h
Go to the documentation of this file.
1 /********************************************************************
2 *
3 * Project Artec 3D Scanning SDK
4 *
5 * Purpose: Store large binary data.
6 *
7 * Copyright: Artec Group
8 *
9 ********************************************************************/
10 
11 #ifndef _IBLOB_H_
12 #define _IBLOB_H_
13 
15 #include <artec/sdk/base/IRef.h>
16 #include <artec/sdk/base/Errors.h>
17 
18 namespace artec { namespace sdk { namespace base
19 {
20 
21 class IBlob;
22 
23 extern "C"
24 {
25 
27  createBlob(IBlob** blob, int size);
28 
29 }
30 
31 /**
32 * Interface for Binary Large Object (memory chunk) with smart reference counting
33 */
34 
35 class IBlob : public IRef
36 {
37 public:
38  /** Get data size.
39  *
40  * @return
41  * Data size.
42  */
43  virtual int getSize() const = 0;
44 
45  /** Get data pointer.
46  *
47  * @return
48  * Data pointer.
49  */
50  virtual void* getPointer() const = 0;
51 };
52 
53 } } } // namespace artec::sdk::base
54 
55 #endif // _IBLOB_H_
ErrorCode ABASESDK_LINK_SPEC createBlob(IBlob **blob, int size)
virtual void * getPointer() const =0
Get data pointer.
Interface for Binary Large Object (memory chunk) with smart reference counting.
Definition: IBlob.h:35
#define ABASESDK_LINK_SPEC
virtual int getSize() const =0
Get data size.
Interface that implements reference counting and life-time management.
Definition: IRef.h:22