diff options
| author | Alan Conway <aconway@apache.org> | 2008-09-06 14:10:08 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-09-06 14:10:08 +0000 |
| commit | 028745dbc3c47bd6561310678f82f15bd45678d9 (patch) | |
| tree | 036ac009b7ccbcafcf4b6c2aa375bb19237f5a0e /cpp/src/qpid/RefCountedBuffer.cpp | |
| parent | 3bb7782cb0904f0abf61b7fb28da7bce905ceb08 (diff) | |
| download | qpid-python-028745dbc3c47bd6561310678f82f15bd45678d9.tar.gz | |
RefCountedBuffer improvements, centralize cluster encoding/decoding in Event.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@692654 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/RefCountedBuffer.cpp')
| -rw-r--r-- | cpp/src/qpid/RefCountedBuffer.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cpp/src/qpid/RefCountedBuffer.cpp b/cpp/src/qpid/RefCountedBuffer.cpp index 3a52b94412..2a8cbc0930 100644 --- a/cpp/src/qpid/RefCountedBuffer.cpp +++ b/cpp/src/qpid/RefCountedBuffer.cpp @@ -34,12 +34,19 @@ char* RefCountedBuffer::addr() const { return const_cast<char*>(reinterpret_cast<const char*>(this)+sizeof(RefCountedBuffer)); } -RefCountedBuffer::intrusive_ptr RefCountedBuffer::create(size_t n) { +RefCountedBuffer::pointer RefCountedBuffer::create(size_t n) { char* store=::new char[n+sizeof(RefCountedBuffer)]; new(store) RefCountedBuffer; - return reinterpret_cast<RefCountedBuffer*>(store); + return pointer(reinterpret_cast<RefCountedBuffer*>(store)); } +RefCountedBuffer::pointer::pointer() {} +RefCountedBuffer::pointer::pointer(RefCountedBuffer* x) : p(x) {} +RefCountedBuffer::pointer::pointer(const pointer& x) : p(x.p) {} +RefCountedBuffer::pointer::~pointer() {} +RefCountedBuffer::pointer& RefCountedBuffer::pointer::operator=(const RefCountedBuffer::pointer& x) { p = x.p; return *this; } + +char* RefCountedBuffer::pointer::cp() const { return p ? p->get() : 0; } } // namespace qpid |
