summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/CollocatedRequestHandler.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2016-01-19 16:46:11 -0800
committerMark Spruiell <mes@zeroc.com>2016-01-19 16:46:11 -0800
commitd5dd7c866e9e1dc59dc7e127eb39f641530bf823 (patch)
tree61771e4f322a7138b643d5325a6d10acea30fb84 /cpp/src/Ice/CollocatedRequestHandler.cpp
parentDeprecate ice_name and add ice_id (diff)
downloadice-d5dd7c866e9e1dc59dc7e127eb39f641530bf823.tar.bz2
ice-d5dd7c866e9e1dc59dc7e127eb39f641530bf823.tar.xz
ice-d5dd7c866e9e1dc59dc7e127eb39f641530bf823.zip
ICE-6861 - removing public stream API
Diffstat (limited to 'cpp/src/Ice/CollocatedRequestHandler.cpp')
-rw-r--r--cpp/src/Ice/CollocatedRequestHandler.cpp32
1 files changed, 18 insertions, 14 deletions
diff --git a/cpp/src/Ice/CollocatedRequestHandler.cpp b/cpp/src/Ice/CollocatedRequestHandler.cpp
index 87a3d09c0f2..d57d9d72934 100644
--- a/cpp/src/Ice/CollocatedRequestHandler.cpp
+++ b/cpp/src/Ice/CollocatedRequestHandler.cpp
@@ -31,7 +31,7 @@ class InvokeAll : public DispatchWorkItem
public:
InvokeAll(OutgoingBase* out,
- BasicStream* os,
+ OutputStream* os,
CollocatedRequestHandler* handler,
Int requestId,
Int batchRequestNum) :
@@ -59,7 +59,7 @@ public:
private:
OutgoingBase* _out;
- BasicStream* _os;
+ OutputStream* _os;
CollocatedRequestHandlerPtr _handler;
Int _requestId;
Int _batchRequestNum;
@@ -70,7 +70,7 @@ class InvokeAllAsync : public DispatchWorkItem
public:
InvokeAllAsync(const OutgoingAsyncBasePtr& outAsync,
- BasicStream* os,
+ OutputStream* os,
const CollocatedRequestHandlerPtr& handler,
Int requestId,
Int batchRequestNum) :
@@ -90,14 +90,14 @@ public:
private:
OutgoingAsyncBasePtr _outAsync;
- BasicStream* _os;
+ OutputStream* _os;
CollocatedRequestHandlerPtr _handler;
Int _requestId;
Int _batchRequestNum;
};
void
-fillInValue(BasicStream* os, int pos, Int value)
+fillInValue(OutputStream* os, int pos, Int value)
{
const Byte* p = reinterpret_cast<const Byte*>(&value);
#ifdef ICE_BIG_ENDIAN
@@ -316,25 +316,27 @@ CollocatedRequestHandler::invokeAsyncRequest(OutgoingAsyncBase* outAsync, int ba
}
void
-CollocatedRequestHandler::sendResponse(Int requestId, BasicStream* os, Byte, bool amd)
+CollocatedRequestHandler::sendResponse(Int requestId, OutputStream* os, Byte, bool amd)
{
OutgoingAsyncBasePtr outAsync;
{
Lock sync(*this);
assert(_response);
- os->i = os->b.begin() + sizeof(replyHdr) + 4;
+ InputStream is(os->instance(), os->getEncoding(), *os, true); // Adopting the OutputStream's buffer.
+
+ is.i = is.b.begin() + sizeof(replyHdr) + 4;
if(_traceLevels->protocol >= 1)
{
fillInValue(os, 10, static_cast<Int>(os->b.size()));
- traceRecv(*os, _logger, _traceLevels);
+ traceRecv(is, _logger, _traceLevels);
}
map<int, OutgoingBase*>::iterator p = _requests.find(requestId);
if(p != _requests.end())
{
- p->second->completed(*os);
+ p->second->completed(is);
_requests.erase(p);
}
else
@@ -342,7 +344,7 @@ CollocatedRequestHandler::sendResponse(Int requestId, BasicStream* os, Byte, boo
map<int, OutgoingAsyncBasePtr>::iterator q = _asyncRequests.find(requestId);
if(q != _asyncRequests.end())
{
- os->swap(*q->second->getIs());
+ is.swap(*q->second->getIs());
if(q->second->completed())
{
outAsync = q->second;
@@ -442,15 +444,17 @@ CollocatedRequestHandler::sentAsync(OutgoingAsyncBase* outAsync)
}
void
-CollocatedRequestHandler::invokeAll(BasicStream* os, Int requestId, Int batchRequestNum)
+CollocatedRequestHandler::invokeAll(OutputStream* os, Int requestId, Int batchRequestNum)
{
+ InputStream is(os->instance(), os->getEncoding(), *os);
+
if(batchRequestNum > 0)
{
- os->i = os->b.begin() + sizeof(requestBatchHdr);
+ is.i = is.b.begin() + sizeof(requestBatchHdr);
}
else
{
- os->i = os->b.begin() + sizeof(requestHdr);
+ is.i = is.b.begin() + sizeof(requestHdr);
}
if(_traceLevels->protocol >= 1)
@@ -490,7 +494,7 @@ CollocatedRequestHandler::invokeAll(BasicStream* os, Int requestId, Int batchReq
}
Incoming in(_reference->getInstance().get(), this, 0, _adapter, _response, 0, requestId);
- in.invoke(servantManager, os);
+ in.invoke(servantManager, &is);
--invokeNum;
}
}