diff options
author | Logan Dethrow <log@lindenlab.com> | 2011-07-28 10:41:59 -0400 |
---|---|---|
committer | Logan Dethrow <log@lindenlab.com> | 2011-07-28 10:41:59 -0400 |
commit | 814a2d24dca5181a31316a6f5e00e1a1cf55f23e (patch) | |
tree | c57c3bb773070bba41251a857b59549fe7e04303 /indra/llmessage/llcurl.h | |
parent | b6be1bb71853d6a5b6b6fd9423fa00ffc8ce096c (diff) | |
parent | 825fc273ee5167052d811dc058b1834c86e005da (diff) |
Merge
Diffstat (limited to 'indra/llmessage/llcurl.h')
-rw-r--r-- | indra/llmessage/llcurl.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h index 5dd894d9b8..79f5eeb927 100644 --- a/indra/llmessage/llcurl.h +++ b/indra/llmessage/llcurl.h @@ -41,6 +41,7 @@ #include "llbuffer.h" #include "lliopipe.h" #include "llsd.h" +#include "llthread.h" class LLMutex; @@ -250,11 +251,18 @@ private: static LLMutex* sHandleMutex; }; -class LLCurl::Multi +class LLCurl::Multi : public LLThread { LOG_CLASS(Multi); public: + typedef enum + { + PERFORM_STATE_READY=0, + PERFORM_STATE_PERFORMING=1, + PERFORM_STATE_COMPLETED=2 + } ePerformState; + Multi(); ~Multi(); @@ -264,13 +272,20 @@ public: void removeEasy(Easy* easy); S32 process(); - S32 perform(); + void perform(); + + virtual void run(); CURLMsg* info_read(S32* msgs_in_queue); S32 mQueued; S32 mErrorCount; + S32 mPerformState; + + LLCondition* mSignal; + bool mQuitting; + private: void easyFree(Easy*); @@ -336,7 +351,7 @@ public: void slist_append(const char* str); void sendRequest(const std::string& url); void requestComplete(); - S32 perform(); + void perform(); bool getResult(CURLcode* result, LLCurl::TransferInfo* info = NULL); std::string getErrorString(); |