summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2006-11-09 10:40:56 +0000
committerGordon Sim <gsim@apache.org>2006-11-09 10:40:56 +0000
commit72a71413f25916caea6345b956d859d16eb0d3e3 (patch)
treeeb6b07b802f64f9cd8f815270f7596e01cfd9244 /cpp/src/qpid/framing
parent3183bdd1eeec30d40229bc7394e49cb2bccb9526 (diff)
downloadqpid-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.cpp7
-rw-r--r--cpp/src/qpid/framing/Buffer.h2
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();