Magick++
7.0.10
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
// Copyright Dirk Lemstra 2015
5
//
6
// Reference counted container class for Binary Large Objects (BLOBs)
7
//
8
9
#if !defined(Magick_BlobRef_header)
10
#define Magick_BlobRef_header
11
12
#include "
Magick++/Include.h
"
13
#include <string>
14
15
namespace
Magick
16
{
17
// Forward decl
18
class
BlobRef
;
19
20
class
MagickPPExport
Blob
21
{
22
public
:
23
24
enum
Allocator
25
{
26
MallocAllocator
,
27
NewAllocator
28
};
29
30
// Default constructor
31
Blob
(
void
);
32
33
// Construct object with data, making a copy of the supplied data.
34
Blob
(
const
void
* data_,
const
size_t
length_);
35
36
// Copy constructor (reference counted)
37
Blob
(
const
Blob
& blob_);
38
39
// Destructor (reference counted)
40
virtual
~
Blob
();
41
42
// Assignment operator (reference counted)
43
Blob
& operator=(
const
Blob
& blob_);
44
45
// Update object contents from Base64-encoded string representation.
46
void
base64(
const
std::string base64_);
47
// Return Base64-encoded string representation.
48
std::string base64(
void
)
const
;
49
50
// Obtain pointer to data. The user should never try to modify or
51
// free this data since the Blob class manages its own data. The
52
// user must be finished with the data before allowing the Blob to
53
// be destroyed since the pointer is invalid once the Blob is
54
// destroyed.
55
const
void
* data(
void
)
const
;
56
57
// Obtain data length.
58
size_t
length(
void
)
const
;
59
60
// Update object contents, making a copy of the supplied data.
61
// Any existing data in the object is deallocated.
62
void
update(
const
void
* data_,
const
size_t
length_);
63
64
// Update object contents, using supplied pointer directly (no
65
// copy). Any existing data in the object is deallocated. The user
66
// must ensure that the pointer supplied is not deleted or
67
// otherwise modified after it has been supplied to this method.
68
// Specify allocator_ as "MallocAllocator" if memory is allocated
69
// via the C language malloc() function, or "NewAllocator" if
70
// memory is allocated via C++ 'new'.
71
void
updateNoCopy(
void
* data_,
const
size_t
length_,
72
const
Allocator allocator_=NewAllocator);
73
74
private
:
75
BlobRef
*_blobRef;
76
};
77
78
}
// namespace Magick
79
80
#endif // Magick_BlobRef_header
Magick::Blob::MallocAllocator
Definition:
Blob.h:26
Magick::Blob
Definition:
Blob.h:20
MagickPPExport
#define MagickPPExport
Definition:
Include.h:281
Include.h
Magick::BlobRef
Definition:
BlobRef.h:21
Magick::Blob::Allocator
Allocator
Definition:
Blob.h:24
Magick
Definition:
Blob.h:15
home
cristy
ImageMagick-7
Magick++
lib
Magick++
Blob.h
Generated by
1.8.14