Use LLBufferArray instead of std::stringstream for CurlResponderBuffer::mInput

Note the changed code is never used yet.  CurlResponderBuffer::curlReadCallback
is only called when Request::post is being used, which is never used.
This commit is contained in:
Aleric Inglewood
2012-07-29 22:52:20 +02:00
parent ba65f29a72
commit 464919072d
3 changed files with 24 additions and 21 deletions

View File

@@ -1164,9 +1164,7 @@ void CurlResponderBuffer::resetState(AICurlEasyRequest_wat& curl_easy_request_w)
curl_easy_request_w->resetState();
mOutput.reset();
mInput.str("");
mInput.clear();
mInput.reset();
mHeaderOutput.str("");
mHeaderOutput.clear();
@@ -1184,6 +1182,10 @@ void CurlResponderBuffer::prepRequest(AICurlEasyRequest_wat& curl_easy_request_w
curl_easy_request_w->setoptString(CURLOPT_ENCODING, "");
}
mInput.reset(new LLBufferArray);
mInput->setThreaded(true);
mLastRead = NULL;
mOutput.reset(new LLBufferArray);
mOutput->setThreaded(true);
@@ -1244,16 +1246,10 @@ size_t CurlResponderBuffer::curlReadCallback(char* data, size_t size, size_t nme
// to make sure that callbacks and destruction aren't done simultaneously.
AICurlEasyRequest_wat buffered_easy_request_w(*lockobj);
S32 bytes = size * nmemb; // The maximum amount to read.
AICurlResponderBuffer_wat buffer_w(*lockobj);
S32 n = size * nmemb;
S32 startpos = buffer_w->getInput().tellg();
buffer_w->getInput().seekg(0, std::ios::end);
S32 endpos = buffer_w->getInput().tellg();
buffer_w->getInput().seekg(startpos, std::ios::beg);
S32 maxn = endpos - startpos;
n = llmin(n, maxn);
buffer_w->getInput().read(data, n);
return n;
buffer_w->mLastRead = buffer_w->getInput()->readAfter(sChannels.out(), buffer_w->mLastRead, (U8*)data, bytes);
return bytes; // Return the amount actually read.
}
//static