Back to Imagemagick

Magick++: Blob.h Source File

www/api/Magick++/Blob_8h_source.html

7.1.2-214.9 KB
Original Source

| Magick++ 7.1.0 |

Blob.h

Go to the documentation of this file.

1 // This may look like C code, but it is really -*- C++ -*-

2 //

3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002

4 //

5 // Copyright @ 2015 ImageMagick Studio LLC, a non-profit organization

6 // dedicated to making software imaging solutions freely available.

7 //

8 // Reference counted container class for Binary Large Objects (BLOBs)

9 //

10

11 #if !defined(Magick_BlobRef_header)

12 #define Magick_BlobRef_header

13

14 #include "Magick++/Include.h"

15 #include <string>

16

17 namespace Magick

18 {

19// Forward decl

20class BlobRef;

21

22class MagickPPExport Blob

23 {

24public:

25

26enum Allocator

27 {

28MallocAllocator,

29 NewAllocator

30 };

31

32// Default constructor

33Blob(void);

34

35// Construct object with data, making a copy of the supplied data.

36Blob(const void* data_,const size_t length_);

37

38// Copy constructor (reference counted)

39Blob(const Blob& blob_);

40

41// Destructor (reference counted)

42virtual ~Blob();

43

44// Assignment operator (reference counted)

45Blob& operator=(const Blob& blob_);

46

47// Update object contents from Base64-encoded string representation.

48void base64(const std::string base64_);

49// Return Base64-encoded string representation.

50 std::string base64(void) const;

51

52// Obtain pointer to data. The user should never try to modify or

53// free this data since the Blob class manages its own data. The

54// user must be finished with the data before allowing the Blob to

55// be destroyed since the pointer is invalid once the Blob is

56// destroyed.

57const void* data(void) const;

58

59// Obtain data length.

60size_t length(void) const;

61

62// Update object contents, making a copy of the supplied data.

63// Any existing data in the object is deallocated.

64void update(const void* data_,const size_t length_);

65

66// Update object contents, using supplied pointer directly (no

67// copy). Any existing data in the object is deallocated. The user

68// must ensure that the pointer supplied is not deleted or

69// otherwise modified after it has been supplied to this method.

70// Specify allocator_ as "MallocAllocator" if memory is allocated

71// via the C language malloc() function, or "NewAllocator" if

72// memory is allocated via C++ 'new'.

73void updateNoCopy(void* data_,const size_t length_,

74const Allocator allocator_=NewAllocator);

75

76private:

77BlobRef *_blobRef;

78 };

79

80 } // namespace Magick

81

82 #endif // Magick_BlobRef_header

Magick::Blob::MallocAllocator

Definition: Blob.h:28

Magick::Blob

Definition: Blob.h:22

MagickPPExport

#define MagickPPExport

Definition: Include.h:297

Include.h

Magick::BlobRef

Definition: BlobRef.h:23

Magick::Blob::Allocator

Allocator

Definition: Blob.h:26

Magick

Definition: Blob.h:17