From 028745dbc3c47bd6561310678f82f15bd45678d9 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Sat, 6 Sep 2008 14:10:08 +0000 Subject: 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 --- cpp/src/qpid/RefCountedBuffer.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'cpp/src/qpid/RefCountedBuffer.cpp') 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(reinterpret_cast(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(store); + return pointer(reinterpret_cast(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 -- cgit v1.2.1