diff options
| author | Gordon Sim <gsim@apache.org> | 2006-11-09 10:40:56 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2006-11-09 10:40:56 +0000 |
| commit | 72a71413f25916caea6345b956d859d16eb0d3e3 (patch) | |
| tree | eb6b07b802f64f9cd8f815270f7596e01cfd9244 /cpp/src/qpid/framing | |
| parent | 3183bdd1eeec30d40229bc7394e49cb2bccb9526 (diff) | |
| download | qpid-python-72a71413f25916caea6345b956d859d16eb0d3e3.tar.gz | |
Added some encode/decode routines to Message (plus test).
Altered Buffer to allow memory for data to be specified on construction.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@472850 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/framing')
| -rw-r--r-- | cpp/src/qpid/framing/Buffer.cpp | 7 | ||||
| -rw-r--r-- | cpp/src/qpid/framing/Buffer.h | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/qpid/framing/Buffer.cpp b/cpp/src/qpid/framing/Buffer.cpp index b7c17fa86f..05e9be83a9 100644 --- a/cpp/src/qpid/framing/Buffer.cpp +++ b/cpp/src/qpid/framing/Buffer.cpp @@ -18,12 +18,15 @@ #include "qpid/framing/Buffer.h" #include "qpid/framing/FieldTable.h" -qpid::framing::Buffer::Buffer(u_int32_t _size) : size(_size), position(0), limit(_size){ +qpid::framing::Buffer::Buffer(u_int32_t _size) : size(_size), owner(true), position(0), limit(_size){ data = new char[size]; } +qpid::framing::Buffer::Buffer(char* _data, u_int32_t _size) : size(_size), owner(false), data(_data), position(0), limit(_size){ +} + qpid::framing::Buffer::~Buffer(){ - delete[] data; + if(owner) delete[] data; } void qpid::framing::Buffer::flip(){ diff --git a/cpp/src/qpid/framing/Buffer.h b/cpp/src/qpid/framing/Buffer.h index 1698144908..8eb92a1d27 100644 --- a/cpp/src/qpid/framing/Buffer.h +++ b/cpp/src/qpid/framing/Buffer.h @@ -28,6 +28,7 @@ class FieldTable; class Buffer { const u_int32_t size; + const bool owner;//indicates whether the data is owned by this instance char* data; u_int32_t position; u_int32_t limit; @@ -37,6 +38,7 @@ class Buffer public: Buffer(u_int32_t size); + Buffer(char* data, u_int32_t size); ~Buffer(); void flip(); |
