diff options
author | Andrew Stitcher <astitcher@apache.org> | 2007-08-31 18:20:29 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2007-08-31 18:20:29 +0000 |
commit | 655b3b5806bafdd784f6a9c242e26341bd6aeccc (patch) | |
tree | 01fe5108d9901b6c577a5930be6ca31a625300fd /cpp/src/qpid/broker/DtxHandlerImpl.cpp | |
parent | f5a1cf995f4956ec2dd83a60715b31ad065f7751 (diff) | |
download | qpid-python-655b3b5806bafdd784f6a9c242e26341bd6aeccc.tar.gz |
* Changes to make C++ client code use the asynchronous network IO
* Fixed up the test for buffer changes
* Removed unused buffer operations
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@571529 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/DtxHandlerImpl.cpp')
-rw-r--r-- | cpp/src/qpid/broker/DtxHandlerImpl.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/cpp/src/qpid/broker/DtxHandlerImpl.cpp b/cpp/src/qpid/broker/DtxHandlerImpl.cpp index 5a69ff0d65..e6593c30ca 100644 --- a/cpp/src/qpid/broker/DtxHandlerImpl.cpp +++ b/cpp/src/qpid/broker/DtxHandlerImpl.cpp @@ -149,14 +149,17 @@ DtxCoordinationRecoverResult DtxHandlerImpl::recover(u_int16_t /*ticket*/, for (std::set<std::string>::iterator i = xids.begin(); i != xids.end(); i++) { size += i->size() + 1/*shortstr size*/; } - Buffer buffer(size + 4/*longstr size*/); - buffer.putLong(size); + + char* bytes = static_cast<char*>(::alloca(size + 4/*longstr size*/)); + Buffer wbuffer(bytes, size + 4/*longstr size*/); + wbuffer.putLong(size); for (std::set<std::string>::iterator i = xids.begin(); i != xids.end(); i++) { - buffer.putShortString(*i); + wbuffer.putShortString(*i); } - buffer.flip(); + + Buffer rbuffer(bytes, size + 4/*longstr size*/); string data; - buffer.getLongString(data); + rbuffer.getLongString(data); FieldTable response; response.setString("xids", data); |