diff options
Diffstat (limited to 'indra/llcorehttp/httprequest.cpp')
-rw-r--r-- | indra/llcorehttp/httprequest.cpp | 474 |
1 files changed, 237 insertions, 237 deletions
diff --git a/indra/llcorehttp/httprequest.cpp b/indra/llcorehttp/httprequest.cpp index de3854a101..216d407deb 100644 --- a/indra/llcorehttp/httprequest.cpp +++ b/indra/llcorehttp/httprequest.cpp @@ -54,13 +54,13 @@ namespace LLCore HttpRequest::HttpRequest() - : mReplyQueue(), - mRequestQueue(NULL) + : mReplyQueue(), + mRequestQueue(NULL) { - mRequestQueue = HttpRequestQueue::instanceOf(); - mRequestQueue->addRef(); + mRequestQueue = HttpRequestQueue::instanceOf(); + mRequestQueue->addRef(); - mReplyQueue.reset( new HttpReplyQueue() ); + mReplyQueue.reset( new HttpReplyQueue() ); HTTPStats::instance().recordHTTPRequest(); } @@ -68,11 +68,11 @@ HttpRequest::HttpRequest() HttpRequest::~HttpRequest() { - if (mRequestQueue) - { - mRequestQueue->release(); - mRequestQueue = NULL; - } + if (mRequestQueue) + { + mRequestQueue->release(); + mRequestQueue = NULL; + } mReplyQueue.reset(); } @@ -85,88 +85,88 @@ HttpRequest::~HttpRequest() HttpRequest::policy_t HttpRequest::createPolicyClass() { - if (HttpService::RUNNING == HttpService::instanceOf()->getState()) - { - return 0; - } - return HttpService::instanceOf()->createPolicyClass(); + if (HttpService::RUNNING == HttpService::instanceOf()->getState()) + { + return 0; + } + return HttpService::instanceOf()->createPolicyClass(); } HttpStatus HttpRequest::setStaticPolicyOption(EPolicyOption opt, policy_t pclass, - long value, long * ret_value) + long value, long * ret_value) { - if (HttpService::RUNNING == HttpService::instanceOf()->getState()) - { - return HttpStatus(HttpStatus::LLCORE, HE_OPT_NOT_DYNAMIC); - } - return HttpService::instanceOf()->setPolicyOption(opt, pclass, value, ret_value); + if (HttpService::RUNNING == HttpService::instanceOf()->getState()) + { + return HttpStatus(HttpStatus::LLCORE, HE_OPT_NOT_DYNAMIC); + } + return HttpService::instanceOf()->setPolicyOption(opt, pclass, value, ret_value); } HttpStatus HttpRequest::setStaticPolicyOption(EPolicyOption opt, policy_t pclass, - const std::string & value, std::string * ret_value) + const std::string & value, std::string * ret_value) { - if (HttpService::RUNNING == HttpService::instanceOf()->getState()) - { - return HttpStatus(HttpStatus::LLCORE, HE_OPT_NOT_DYNAMIC); - } - return HttpService::instanceOf()->setPolicyOption(opt, pclass, value, ret_value); + if (HttpService::RUNNING == HttpService::instanceOf()->getState()) + { + return HttpStatus(HttpStatus::LLCORE, HE_OPT_NOT_DYNAMIC); + } + return HttpService::instanceOf()->setPolicyOption(opt, pclass, value, ret_value); } HttpStatus HttpRequest::setStaticPolicyOption(EPolicyOption opt, policy_t pclass, policyCallback_t value, policyCallback_t * ret_value) { - if (HttpService::RUNNING == HttpService::instanceOf()->getState()) - { - return HttpStatus(HttpStatus::LLCORE, HE_OPT_NOT_DYNAMIC); - } + if (HttpService::RUNNING == HttpService::instanceOf()->getState()) + { + return HttpStatus(HttpStatus::LLCORE, HE_OPT_NOT_DYNAMIC); + } - return HttpService::instanceOf()->setPolicyOption(opt, pclass, value, ret_value); + return HttpService::instanceOf()->setPolicyOption(opt, pclass, value, ret_value); } HttpHandle HttpRequest::setPolicyOption(EPolicyOption opt, policy_t pclass, - long value, HttpHandler::ptr_t handler) + long value, HttpHandler::ptr_t handler) { - HttpStatus status; + HttpStatus status; HttpOpSetGet::ptr_t op(new HttpOpSetGet()); - if (! (status = op->setupSet(opt, pclass, value))) - { - mLastReqStatus = status; + if (! (status = op->setupSet(opt, pclass, value))) + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - op->setReplyPath(mReplyQueue, handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; + } + op->setReplyPath(mReplyQueue, handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - - mLastReqStatus = status; - return op->getHandle(); + } + + mLastReqStatus = status; + return op->getHandle(); } HttpHandle HttpRequest::setPolicyOption(EPolicyOption opt, policy_t pclass, - const std::string & value, HttpHandler::ptr_t handler) + const std::string & value, HttpHandler::ptr_t handler) { - HttpStatus status; + HttpStatus status; - HttpOpSetGet::ptr_t op (new HttpOpSetGet()); - if (! (status = op->setupSet(opt, pclass, value))) - { - mLastReqStatus = status; + HttpOpSetGet::ptr_t op (new HttpOpSetGet()); + if (! (status = op->setupSet(opt, pclass, value))) + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - op->setReplyPath(mReplyQueue, handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; + } + op->setReplyPath(mReplyQueue, handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - - mLastReqStatus = status; - return op->getHandle(); + } + + mLastReqStatus = status; + return op->getHandle(); } @@ -177,116 +177,116 @@ HttpHandle HttpRequest::setPolicyOption(EPolicyOption opt, policy_t pclass, HttpStatus HttpRequest::getStatus() const { - return mLastReqStatus; + return mLastReqStatus; } HttpHandle HttpRequest::requestGet(policy_t policy_id, - const std::string & url, + const std::string & url, const HttpOptions::ptr_t & options, - const HttpHeaders::ptr_t & headers, - HttpHandler::ptr_t user_handler) + const HttpHeaders::ptr_t & headers, + HttpHandler::ptr_t user_handler) { LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK; - HttpStatus status; + HttpStatus status; - HttpOpRequest::ptr_t op(new HttpOpRequest()); - if (! (status = op->setupGet(policy_id, url, options, headers))) - { - mLastReqStatus = status; + HttpOpRequest::ptr_t op(new HttpOpRequest()); + if (! (status = op->setupGet(policy_id, url, options, headers))) + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - op->setReplyPath(mReplyQueue, user_handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; + } + op->setReplyPath(mReplyQueue, user_handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - - mLastReqStatus = status; + } + + mLastReqStatus = status; return op->getHandle(); } HttpHandle HttpRequest::requestGetByteRange(policy_t policy_id, - const std::string & url, - size_t offset, - size_t len, + const std::string & url, + size_t offset, + size_t len, const HttpOptions::ptr_t & options, - const HttpHeaders::ptr_t & headers, - HttpHandler::ptr_t user_handler) + const HttpHeaders::ptr_t & headers, + HttpHandler::ptr_t user_handler) { LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK; - HttpStatus status; + HttpStatus status; - HttpOpRequest::ptr_t op(new HttpOpRequest()); - if (! (status = op->setupGetByteRange(policy_id, url, offset, len, options, headers))) - { - mLastReqStatus = status; + HttpOpRequest::ptr_t op(new HttpOpRequest()); + if (! (status = op->setupGetByteRange(policy_id, url, offset, len, options, headers))) + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - op->setReplyPath(mReplyQueue, user_handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; + } + op->setReplyPath(mReplyQueue, user_handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - - mLastReqStatus = status; - return op->getHandle(); + } + + mLastReqStatus = status; + return op->getHandle(); } HttpHandle HttpRequest::requestPost(policy_t policy_id, - const std::string & url, - BufferArray * body, + const std::string & url, + BufferArray * body, const HttpOptions::ptr_t & options, - const HttpHeaders::ptr_t & headers, - HttpHandler::ptr_t user_handler) + const HttpHeaders::ptr_t & headers, + HttpHandler::ptr_t user_handler) { - HttpStatus status; + HttpStatus status; - HttpOpRequest::ptr_t op(new HttpOpRequest()); - if (! (status = op->setupPost(policy_id, url, body, options, headers))) - { - mLastReqStatus = status; + HttpOpRequest::ptr_t op(new HttpOpRequest()); + if (! (status = op->setupPost(policy_id, url, body, options, headers))) + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - op->setReplyPath(mReplyQueue, user_handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; + } + op->setReplyPath(mReplyQueue, user_handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - - mLastReqStatus = status; - return op->getHandle(); + } + + mLastReqStatus = status; + return op->getHandle(); } HttpHandle HttpRequest::requestPut(policy_t policy_id, - const std::string & url, - BufferArray * body, + const std::string & url, + BufferArray * body, const HttpOptions::ptr_t & options, - const HttpHeaders::ptr_t & headers, - HttpHandler::ptr_t user_handler) + const HttpHeaders::ptr_t & headers, + HttpHandler::ptr_t user_handler) { - HttpStatus status; + HttpStatus status; - HttpOpRequest::ptr_t op (new HttpOpRequest()); - if (! (status = op->setupPut(policy_id, url, body, options, headers))) - { - mLastReqStatus = status; + HttpOpRequest::ptr_t op (new HttpOpRequest()); + if (! (status = op->setupPut(policy_id, url, body, options, headers))) + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - op->setReplyPath(mReplyQueue, user_handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; + } + op->setReplyPath(mReplyQueue, user_handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } - - mLastReqStatus = status; + } + + mLastReqStatus = status; return op->getHandle(); } @@ -305,7 +305,7 @@ HttpHandle HttpRequest::requestDelete(policy_t policy_id, return LLCORE_HTTP_HANDLE_INVALID; } op->setReplyPath(mReplyQueue, user_handler); - if (!(status = mRequestQueue->addOp(op))) // transfers refcount + if (!(status = mRequestQueue->addOp(op))) // transfers refcount { mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; @@ -331,7 +331,7 @@ HttpHandle HttpRequest::requestPatch(policy_t policy_id, return LLCORE_HTTP_HANDLE_INVALID; } op->setReplyPath(mReplyQueue, user_handler); - if (!(status = mRequestQueue->addOp(op))) // transfers refcount + if (!(status = mRequestQueue->addOp(op))) // transfers refcount { mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; @@ -356,7 +356,7 @@ HttpHandle HttpRequest::requestCopy(policy_t policy_id, return LLCORE_HTTP_HANDLE_INVALID; } op->setReplyPath(mReplyQueue, user_handler); - if (!(status = mRequestQueue->addOp(op))) // transfers refcount + if (!(status = mRequestQueue->addOp(op))) // transfers refcount { mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; @@ -382,7 +382,7 @@ HttpHandle HttpRequest::requestMove(policy_t policy_id, return LLCORE_HTTP_HANDLE_INVALID; } op->setReplyPath(mReplyQueue, user_handler); - if (!(status = mRequestQueue->addOp(op))) // transfers refcount + if (!(status = mRequestQueue->addOp(op))) // transfers refcount { mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; @@ -395,61 +395,61 @@ HttpHandle HttpRequest::requestMove(policy_t policy_id, HttpHandle HttpRequest::requestNoOp(HttpHandler::ptr_t user_handler) { - HttpStatus status; + HttpStatus status; - HttpOperation::ptr_t op (new HttpOpNull()); - op->setReplyPath(mReplyQueue, user_handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; + HttpOperation::ptr_t op (new HttpOpNull()); + op->setReplyPath(mReplyQueue, user_handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } + } - mLastReqStatus = status; - return op->getHandle(); + mLastReqStatus = status; + return op->getHandle(); } HttpStatus HttpRequest::update(long usecs) { - HttpOperation::ptr_t op; - - if (usecs) - { - const HttpTime limit(totalTime() + HttpTime(usecs)); - while (limit >= totalTime() && (op = mReplyQueue->fetchOp())) - { - // Process operation - op->visitNotifier(this); - - // We're done with the operation + HttpOperation::ptr_t op; + + if (usecs) + { + const HttpTime limit(totalTime() + HttpTime(usecs)); + while (limit >= totalTime() && (op = mReplyQueue->fetchOp())) + { + // Process operation + op->visitNotifier(this); + + // We're done with the operation op.reset(); - } - } - else - { - // Same as above, just no time limit - HttpReplyQueue::OpContainer replies; - mReplyQueue->fetchAll(replies); - if (! replies.empty()) - { - for (HttpReplyQueue::OpContainer::iterator iter(replies.begin()); - replies.end() != iter; - ++iter) - { - // Swap op pointer for NULL; + } + } + else + { + // Same as above, just no time limit + HttpReplyQueue::OpContainer replies; + mReplyQueue->fetchAll(replies); + if (! replies.empty()) + { + for (HttpReplyQueue::OpContainer::iterator iter(replies.begin()); + replies.end() != iter; + ++iter) + { + // Swap op pointer for NULL; op.reset(); op.swap(*iter); - - // Process operation - op->visitNotifier(this); - - // We're done with the operation - } - } - } - - return HttpStatus(); + + // Process operation + op->visitNotifier(this); + + // We're done with the operation + } + } + } + + return HttpStatus(); } @@ -461,18 +461,18 @@ HttpStatus HttpRequest::update(long usecs) HttpHandle HttpRequest::requestCancel(HttpHandle request, HttpHandler::ptr_t user_handler) { - HttpStatus status; + HttpStatus status; - HttpOperation::ptr_t op(new HttpOpCancel(request)); - op->setReplyPath(mReplyQueue, user_handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; + HttpOperation::ptr_t op(new HttpOpCancel(request)); + op->setReplyPath(mReplyQueue, user_handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; return LLCORE_HTTP_HANDLE_INVALID; - } + } - mLastReqStatus = status; - return op->getHandle(); + mLastReqStatus = status; + return op->getHandle(); } @@ -482,82 +482,82 @@ HttpHandle HttpRequest::requestCancel(HttpHandle request, HttpHandler::ptr_t use HttpStatus HttpRequest::createService() { - HttpStatus status; - - if (! has_inited) - { - HttpRequestQueue::init(); - HttpRequestQueue * rq = HttpRequestQueue::instanceOf(); - HttpService::init(rq); - has_inited = true; - } - - return status; + HttpStatus status; + + if (! has_inited) + { + HttpRequestQueue::init(); + HttpRequestQueue * rq = HttpRequestQueue::instanceOf(); + HttpService::init(rq); + has_inited = true; + } + + return status; } HttpStatus HttpRequest::destroyService() { - HttpStatus status; - - if (has_inited) - { - HttpService::term(); - HttpRequestQueue::term(); - has_inited = false; - } - - return status; + HttpStatus status; + + if (has_inited) + { + HttpService::term(); + HttpRequestQueue::term(); + has_inited = false; + } + + return status; } HttpStatus HttpRequest::startThread() { - HttpStatus status; + HttpStatus status; + + HttpService::instanceOf()->startThread(); - HttpService::instanceOf()->startThread(); - - return status; + return status; } HttpHandle HttpRequest::requestStopThread(HttpHandler::ptr_t user_handler) { - HttpStatus status; - HttpHandle handle(LLCORE_HTTP_HANDLE_INVALID); + HttpStatus status; + HttpHandle handle(LLCORE_HTTP_HANDLE_INVALID); - HttpOperation::ptr_t op(new HttpOpStop()); - op->setReplyPath(mReplyQueue, user_handler); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; - return handle; - } + HttpOperation::ptr_t op(new HttpOpStop()); + op->setReplyPath(mReplyQueue, user_handler); + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; + return handle; + } - mLastReqStatus = status; - handle = op->getHandle(); + mLastReqStatus = status; + handle = op->getHandle(); - return handle; + return handle; } HttpHandle HttpRequest::requestSpin(int mode) { - HttpStatus status; - HttpHandle handle(LLCORE_HTTP_HANDLE_INVALID); + HttpStatus status; + HttpHandle handle(LLCORE_HTTP_HANDLE_INVALID); - HttpOperation::ptr_t op(new HttpOpSpin(mode)); + HttpOperation::ptr_t op(new HttpOpSpin(mode)); op->setReplyPath(mReplyQueue, HttpHandler::ptr_t()); - if (! (status = mRequestQueue->addOp(op))) // transfers refcount - { - mLastReqStatus = status; - return handle; - } + if (! (status = mRequestQueue->addOp(op))) // transfers refcount + { + mLastReqStatus = status; + return handle; + } - mLastReqStatus = status; - handle = op->getHandle(); + mLastReqStatus = status; + handle = op->getHandle(); - return handle; + return handle; } |