llmessage v2 merge.
This commit is contained in:
@@ -45,6 +45,11 @@
|
||||
#include "llchainio.h"
|
||||
#include "llerror.h"
|
||||
|
||||
extern const std::string CONTEXT_REQUEST;
|
||||
extern const std::string CONTEXT_DEST_URI_SD_LABEL;
|
||||
extern const std::string CONTEXT_RESPONSE;
|
||||
extern const std::string CONTEXT_TRANSFERED_BYTES;
|
||||
|
||||
class LLURLRequestDetail;
|
||||
|
||||
class LLURLRequestComplete;
|
||||
@@ -81,6 +86,11 @@ public:
|
||||
REQUEST_ACTION_COUNT
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Turn the requst action into an http verb.
|
||||
*/
|
||||
static std::string actionAsVerb(ERequestAction action);
|
||||
|
||||
/**
|
||||
* @brief Constructor.
|
||||
*
|
||||
@@ -114,7 +124,7 @@ public:
|
||||
*
|
||||
*/
|
||||
void setURL(const std::string& url);
|
||||
|
||||
std::string getURL() const;
|
||||
/**
|
||||
* @brief Add a header to the http post.
|
||||
*
|
||||
@@ -173,6 +183,11 @@ public:
|
||||
*/
|
||||
void useProxy(const std::string& proxy);
|
||||
|
||||
/**
|
||||
* @brief Turn on cookie handling for this request with CURLOPT_COOKIEFILE.
|
||||
*/
|
||||
void allowCookies();
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief Give this pipe a chance to handle a generated error
|
||||
@@ -203,6 +218,8 @@ protected:
|
||||
ERequestAction mAction;
|
||||
LLURLRequestDetail* mDetail;
|
||||
LLIOPipe::ptr_t mCompletionCallback;
|
||||
S32 mRequestTransferedBytes;
|
||||
S32 mResponseTransferedBytes;
|
||||
|
||||
private:
|
||||
/**
|
||||
@@ -351,62 +368,6 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @class LLURLRequestClientFactory
|
||||
* @brief Template class to build url request based client chains
|
||||
*
|
||||
* This class eases construction of a basic sd rpc client. Here is an
|
||||
* example of it's use:
|
||||
* <code>
|
||||
* class LLUsefulService : public LLService { ... }<br>
|
||||
* LLService::registerCreator(<br>
|
||||
* "useful",<br>
|
||||
* LLService::creator_t(new LLURLRequestClientFactory<LLUsefulService>))<br>
|
||||
* </code>
|
||||
*
|
||||
* This class should work, but I never got around to using/testing it.
|
||||
*
|
||||
*/
|
||||
#if 0
|
||||
template<class Client>
|
||||
class LLURLRequestClientFactory : public LLChainIOFactory
|
||||
{
|
||||
public:
|
||||
LLURLRequestClientFactory(LLURLRequest::ERequestAction action) {}
|
||||
LLURLRequestClientFactory(
|
||||
LLURLRequest::ERequestAction action,
|
||||
const std::string& fixed_url) :
|
||||
mAction(action),
|
||||
mURL(fixed_url)
|
||||
{
|
||||
}
|
||||
virtual bool build(LLPumpIO::chain_t& chain, LLSD context) const
|
||||
{
|
||||
lldebugs << "LLURLRequestClientFactory::build" << llendl;
|
||||
LLIOPipe::ptr_t service(new Client);
|
||||
chain.push_back(service);
|
||||
LLURLRequest* http(new LLURLRequest(mAction));
|
||||
LLIOPipe::ptr_t http_pipe(http);
|
||||
// *FIX: how do we know the content type?
|
||||
//http->addHeader("Content-Type: text/llsd");
|
||||
if(mURL.empty())
|
||||
{
|
||||
chain.push_back(LLIOPipe::ptr_t(new LLContextURLExtractor(http)));
|
||||
}
|
||||
else
|
||||
{
|
||||
http->setURL(mURL);
|
||||
}
|
||||
chain.push_back(http_pipe);
|
||||
chain.push_back(service);
|
||||
return true;
|
||||
}
|
||||
|
||||
protected:
|
||||
LLURLRequest::ERequestAction mAction;
|
||||
std::string mURL;
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* External constants
|
||||
|
||||
Reference in New Issue
Block a user