Magick++ 7.0.10

BlobRef.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 2014-2015
5 //
6 // Blob reference class
7 //
8 // This is an internal implementation class that should not be
9 // accessed by users.
10 //
11
12 #if !defined(Magick_Blob_header)
13 #define Magick_Blob_header
14
15 #include "Magick++/Include.h"
16 #include "Magick++/Thread.h"
17 #include "Magick++/Blob.h"
18
19 namespace Magick
20 {
21 class BlobRef
22 {
23 public:
24
25 // Construct with data, making private copy of data
26 BlobRef(const void* data_,const size_t length_);
27
28 // Destructor (actually destroys data)
29 ~BlobRef(void);
30
31 // Decreases reference count and return the new count
32 size_t decrease();
33
34 // Increases reference count
35 void increase();
36
37 Blob::Allocator allocator; // Memory allocation system in use
38 size_t length; // Blob length
39 void* data; // Blob data
40
41 private:
42 // Copy constructor and assignment are not supported
43 BlobRef(const BlobRef&);
44 BlobRef& operator=(const BlobRef&);
45
46 MutexLock _mutexLock; // Mutex lock
47 size_t _refCount; // Reference count
48 };
49
50 } // namespace Magick
51
52 #endif // Magick_Blob_header
Magick::BlobRef::BlobRef
BlobRef(const void *data_, const size_t length_)
Definition: BlobRef.cpp:19
Magick::BlobRef::allocator
Blob::Allocator allocator
Definition: BlobRef.h:37
Magick::BlobRef::data
void * data
Definition: BlobRef.h:39
Magick::MutexLock
Definition: Thread.h:27
Thread.h
Magick::BlobRef::increase
void increase()
Definition: BlobRef.cpp:62
Magick::BlobRef::decrease
size_t decrease()
Definition: BlobRef.cpp:44
Include.h
Magick::BlobRef::length
size_t length
Definition: BlobRef.h:38
Magick::BlobRef
Definition: BlobRef.h:21
Magick::Blob::Allocator
Allocator
Definition: Blob.h:24
Magick
Definition: Blob.h:15
Blob.h
Magick::BlobRef::~BlobRef
~BlobRef(void)
Definition: BlobRef.cpp:33