diff options
| author | Rider Linden <rider@lindenlab.com> | 2015-05-08 15:00:32 -0700 | 
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2015-05-08 15:00:32 -0700 | 
| commit | 8d9282fca16d6118bc484b97fa905bcc616e0b9e (patch) | |
| tree | 38a8ac4943ab81ff4aba5e4c40180838510c57f7 | |
| parent | 35faf10ac68480ffa02e0b44edbd0cbf3c052b80 (diff) | |
Updated llfloatermodeluploadbase to LLCore::Http
| -rwxr-xr-x | indra/newview/CMakeLists.txt | 1 | ||||
| -rwxr-xr-x | indra/newview/llfloatermodeluploadbase.cpp | 35 | ||||
| -rwxr-xr-x | indra/newview/llfloatermodeluploadbase.h | 4 | ||||
| -rwxr-xr-x | indra/newview/lluploadfloaterobservers.cpp | 63 | ||||
| -rwxr-xr-x | indra/newview/lluploadfloaterobservers.h | 14 | 
5 files changed, 38 insertions, 79 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 5defc2b16e..628c47b92a 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -594,7 +594,6 @@ set(viewer_SOURCE_FILES      lltwitterconnect.cpp      lluilistener.cpp      lluploaddialog.cpp -    lluploadfloaterobservers.cpp      llurl.cpp      llurldispatcher.cpp      llurldispatcherlistener.cpp diff --git a/indra/newview/llfloatermodeluploadbase.cpp b/indra/newview/llfloatermodeluploadbase.cpp index 22a8ac4705..efc8fae768 100755 --- a/indra/newview/llfloatermodeluploadbase.cpp +++ b/indra/newview/llfloatermodeluploadbase.cpp @@ -30,6 +30,7 @@  #include "llagent.h"  #include "llviewerregion.h"  #include "llnotificationsutil.h" +#include "llcorehttputil.h"  LLFloaterModelUploadBase::LLFloaterModelUploadBase(const LLSD& key)  :LLFloater(key), @@ -47,7 +48,8 @@ void LLFloaterModelUploadBase::requestAgentUploadPermissions()  		LL_INFOS()<< typeid(*this).name()  				  << "::requestAgentUploadPermissions() requesting for upload model permissions from: "  				  << url << LL_ENDL; -		LLHTTPClient::get(url, new LLUploadModelPermissionsResponder(getPermObserverHandle())); +        LLCoros::instance().launch("LLFloaterModelUploadBase::requestAgentUploadPermissionsCoro", +            boost::bind(&LLFloaterModelUploadBase::requestAgentUploadPermissionsCoro, this, _1, url, getPermObserverHandle()));  	}  	else  	{ @@ -58,3 +60,34 @@ void LLFloaterModelUploadBase::requestAgentUploadPermissions()  		mHasUploadPerm = true;  	}  } + +void LLFloaterModelUploadBase::requestAgentUploadPermissionsCoro(LLCoros::self& self, std::string url, +    LLHandle<LLUploadPermissionsObserver> observerHandle) +{ +    LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID); +    LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t +        httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("MeshUploadFlag", httpPolicy)); +    LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); + + +    LLSD result = httpAdapter->getAndYield(self, httpRequest, url); + +    LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS]; +    LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroHandler::getStatusFromLLSD(httpResults); + +    LLUploadPermissionsObserver* observer = observerHandle.get(); + +    if (!observer) +    {  +        LL_WARNS("MeshUploadFlag") << "Unable to get observer after call to '" << url << "' aborting." << LL_ENDL; +    } + +    if (!status) +    { +        observer->setPermissonsErrorStatus(status.getStatus(), status.getMessage()); +        return; +    } + +    result.erase(LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS); +    observer->onPermissionsReceived(result); +}
\ No newline at end of file diff --git a/indra/newview/llfloatermodeluploadbase.h b/indra/newview/llfloatermodeluploadbase.h index d9a8879687..9bb9959af0 100755 --- a/indra/newview/llfloatermodeluploadbase.h +++ b/indra/newview/llfloatermodeluploadbase.h @@ -28,6 +28,8 @@  #define LL_LLFLOATERMODELUPLOADBASE_H  #include "lluploadfloaterobservers.h" +#include "llcoros.h" +#include "lleventcoro.h"  class LLFloaterModelUploadBase : public LLFloater, public LLUploadPermissionsObserver, public LLWholeModelFeeObserver, public LLWholeModelUploadObserver  { @@ -54,6 +56,8 @@ protected:  	// requests agent's permissions to upload model  	void requestAgentUploadPermissions(); +    void requestAgentUploadPermissionsCoro(LLCoros::self& self, std::string url, LLHandle<LLUploadPermissionsObserver> observerHandle); +  	std::string mUploadModelUrl;  	bool mHasUploadPerm;  }; diff --git a/indra/newview/lluploadfloaterobservers.cpp b/indra/newview/lluploadfloaterobservers.cpp deleted file mode 100755 index 69b9b1f9f1..0000000000 --- a/indra/newview/lluploadfloaterobservers.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/** - * @file lluploadfloaterobservers.cpp - * @brief LLUploadModelPermissionsResponder definition - * - * $LicenseInfo:firstyear=2011&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "lluploadfloaterobservers.h" - -LLUploadModelPermissionsResponder::LLUploadModelPermissionsResponder(const LLHandle<LLUploadPermissionsObserver>& observer) -:mObserverHandle(observer) -{ -} - -void LLUploadModelPermissionsResponder::httpFailure() -{ -	LL_WARNS() << dumpResponse() << LL_ENDL; - -	LLUploadPermissionsObserver* observer = mObserverHandle.get(); - -	if (observer) -	{ -		observer->setPermissonsErrorStatus(getStatus(), getReason()); -	} -} - -void LLUploadModelPermissionsResponder::httpSuccess() -{ -	const LLSD& content = getContent(); -	if (!content.isMap()) -	{ -		failureResult(HTTP_INTERNAL_ERROR, "Malformed response contents", content); -		return; -	} -	LLUploadPermissionsObserver* observer = mObserverHandle.get(); - -	if (observer) -	{ -		observer->onPermissionsReceived(content); -	} -} - diff --git a/indra/newview/lluploadfloaterobservers.h b/indra/newview/lluploadfloaterobservers.h index 4ff4a827a5..02baf8f1c0 100755 --- a/indra/newview/lluploadfloaterobservers.h +++ b/indra/newview/lluploadfloaterobservers.h @@ -79,18 +79,4 @@ protected:  	LLRootHandle<LLWholeModelUploadObserver> mWholeModelUploadObserverHandle;  }; - -class LLUploadModelPermissionsResponder : public LLHTTPClient::Responder -{ -	LOG_CLASS(LLUploadModelPermissionsResponder); -public: -	LLUploadModelPermissionsResponder(const LLHandle<LLUploadPermissionsObserver>& observer); - -private: -	/* virtual */ void httpSuccess(); -	/* virtual */ void httpFailure(); - -	LLHandle<LLUploadPermissionsObserver> mObserverHandle; -}; -  #endif /* LL_LLUPLOADFLOATEROBSERVERS_H */  | 
