Merging CurlEasyRequest and CurlResponderBuffer, Step 1

This commit is contained in:
Aleric Inglewood
2012-11-01 02:40:08 +01:00
parent 756aac1f9a
commit 6c01b6da9b
4 changed files with 25 additions and 25 deletions

View File

@@ -879,7 +879,7 @@ void CurlEasyRequest::resetState(void)
mHeaders = NULL;
mTimeoutPolicy = NULL;
mTimeout = NULL;
mEventsTarget = NULL;
mHandleEventsTarget = NULL;
mResult = CURLE_FAILED_INIT;
applyDefaultOptions();
}
@@ -1152,20 +1152,20 @@ void CurlEasyRequest::getResult(CURLcode* result, AITransferInfo* info)
void CurlEasyRequest::added_to_multi_handle(AICurlEasyRequest_wat& curl_easy_request_w)
{
if (mEventsTarget)
mEventsTarget->added_to_multi_handle(curl_easy_request_w);
if (mHandleEventsTarget)
mHandleEventsTarget->added_to_multi_handle(curl_easy_request_w);
}
void CurlEasyRequest::finished(AICurlEasyRequest_wat& curl_easy_request_w)
{
if (mEventsTarget)
mEventsTarget->finished(curl_easy_request_w);
if (mHandleEventsTarget)
mHandleEventsTarget->finished(curl_easy_request_w);
}
void CurlEasyRequest::removed_from_multi_handle(AICurlEasyRequest_wat& curl_easy_request_w)
{
if (mEventsTarget)
mEventsTarget->removed_from_multi_handle(curl_easy_request_w);
if (mHandleEventsTarget)
mHandleEventsTarget->removed_from_multi_handle(curl_easy_request_w);
}
void CurlEasyRequest::print_diagnostics(AICurlEasyRequest_wat const& curlEasyRequest_w, CURLcode code)
@@ -1188,7 +1188,7 @@ static int const HTTP_REDIRECTS_DEFAULT = 10;
LLChannelDescriptors const CurlResponderBuffer::sChannels;
CurlResponderBuffer::CurlResponderBuffer() : mRequestTransferedBytes(0), mResponseTransferedBytes(0), mEventsTarget(NULL)
CurlResponderBuffer::CurlResponderBuffer() : mRequestTransferedBytes(0), mResponseTransferedBytes(0), mBufferEventsTarget(NULL)
{
ThreadSafeBufferedCurlEasyRequest* lockobj = get_lockobj();
AICurlEasyRequest_wat curl_easy_request_w(*lockobj);
@@ -1205,7 +1205,7 @@ CurlResponderBuffer::~CurlResponderBuffer()
{
ThreadSafeBufferedCurlEasyRequest* lockobj = get_lockobj();
AICurlEasyRequest_wat curl_easy_request_w(*lockobj); // Wait 'til possible callbacks have returned.
send_events_to(NULL);
send_buffer_events_to(NULL);
curl_easy_request_w->revokeCallbacks();
if (mResponder)
{
@@ -1280,7 +1280,7 @@ void CurlResponderBuffer::prepRequest(AICurlEasyRequest_wat& curl_easy_request_w
// Send header events to responder if needed.
if (mResponder->needsHeaders())
{
send_events_to(mResponder.get());
send_buffer_events_to(mResponder.get());
}
// Add extra headers.

View File

@@ -238,7 +238,7 @@ void AICurlEasyRequestStateMachine::finish_impl(void)
if (mBuffered)
{
AICurlResponderBuffer_wat buffered_easy_request_w(*mCurlEasyRequest);
buffered_easy_request_w->send_events_to(NULL);
buffered_easy_request_w->send_buffer_events_to(NULL);
}
curl_easy_request_w->send_events_to(NULL);
curl_easy_request_w->revokeCallbacks();

View File

@@ -368,7 +368,7 @@ class CurlEasyRequest : public CurlEasyHandle {
private:
curl_slist* mHeaders;
AICurlEasyHandleEvents* mEventsTarget;
AICurlEasyHandleEvents* mHandleEventsTarget;
CURLcode mResult; //AIFIXME: this does not belong in the request object, but belongs in the response object.
AIHTTPTimeoutPolicy const* mTimeoutPolicy;
@@ -396,7 +396,7 @@ class CurlEasyRequest : public CurlEasyHandle {
// This class may only be created by constructing a ThreadSafeCurlEasyRequest.
friend class ThreadSafeCurlEasyRequest;
// Throws AICurlNoEasyHandle.
CurlEasyRequest(void) : mHeaders(NULL), mEventsTarget(NULL), mResult(CURLE_FAILED_INIT), mTimeoutPolicy(NULL), mTimeoutIsOrphan(false)
CurlEasyRequest(void) : mHeaders(NULL), mHandleEventsTarget(NULL), mResult(CURLE_FAILED_INIT), mTimeoutPolicy(NULL), mTimeoutIsOrphan(false)
#if defined(CWDEBUG) || defined(DEBUG_CURLIO)
, mDebugIsHeadOrGetMethod(false)
#endif
@@ -406,7 +406,7 @@ class CurlEasyRequest : public CurlEasyHandle {
public:
// Post-initialization, set the parent to pass the events to.
void send_events_to(AICurlEasyHandleEvents* target) { mEventsTarget = target; }
void send_events_to(AICurlEasyHandleEvents* target) { mHandleEventsTarget = target; }
// For debugging purposes
bool is_finalized(void) const { return mTimeoutPolicy; }
@@ -458,7 +458,7 @@ class CurlResponderBuffer : protected AICurlResponderBufferEvents, protected AIC
//void setBodyLimit(U32 size) { mBodyLimit = size; }
// Post-initialization, set the parent to pass the events to.
void send_events_to(AICurlResponderBufferEvents* target) { mEventsTarget = target; }
void send_buffer_events_to(AICurlResponderBufferEvents* target) { mBufferEventsTarget = target; }
protected:
// Events from this class.
@@ -481,7 +481,7 @@ class CurlResponderBuffer : protected AICurlResponderBufferEvents, protected AIC
std::string mReason; // The "reason" from the same header line.
S32 mRequestTransferedBytes;
S32 mResponseTransferedBytes;
AICurlResponderBufferEvents* mEventsTarget;
AICurlResponderBufferEvents* mBufferEventsTarget;
public:
static LLChannelDescriptors const sChannels; // Channel object for mInput (channel out()) and mOutput (channel in()).

View File

@@ -2098,13 +2098,13 @@ void CurlResponderBuffer::processOutput(AICurlEasyRequest_wat& curl_easy_request
{
curl_easy_request_w->print_diagnostics(curl_easy_request_w, code);
}
if (mEventsTarget)
if (mBufferEventsTarget)
{
// Only the responder registers for these events.
llassert(mEventsTarget == mResponder.get());
llassert(mBufferEventsTarget == mResponder.get());
// Allow clients to parse result codes and headers before we attempt to parse
// the body and provide completed/result/error calls.
mEventsTarget->completed_headers(responseCode, responseReason, (code == CURLE_FAILED_INIT) ? NULL : &info);
mBufferEventsTarget->completed_headers(responseCode, responseReason, (code == CURLE_FAILED_INIT) ? NULL : &info);
}
mResponder->finished(code, responseCode, responseReason, sChannels, mOutput);
mResponder = NULL;
@@ -2114,20 +2114,20 @@ void CurlResponderBuffer::processOutput(AICurlEasyRequest_wat& curl_easy_request
void CurlResponderBuffer::received_HTTP_header(void)
{
if (mEventsTarget)
mEventsTarget->received_HTTP_header();
if (mBufferEventsTarget)
mBufferEventsTarget->received_HTTP_header();
}
void CurlResponderBuffer::received_header(std::string const& key, std::string const& value)
{
if (mEventsTarget)
mEventsTarget->received_header(key, value);
if (mBufferEventsTarget)
mBufferEventsTarget->received_header(key, value);
}
void CurlResponderBuffer::completed_headers(U32 status, std::string const& reason, AITransferInfo* info)
{
if (mEventsTarget)
mEventsTarget->completed_headers(status, reason, info);
if (mBufferEventsTarget)
mBufferEventsTarget->completed_headers(status, reason, info);
}
//static