diff options
| author | William Todd Stinson <stinson@lindenlab.com> | 2012-11-19 12:01:51 -0800 | 
|---|---|---|
| committer | William Todd Stinson <stinson@lindenlab.com> | 2012-11-19 12:01:51 -0800 | 
| commit | 62301cb883dd6fadcd5d30acd604f72d2c0b1794 (patch) | |
| tree | baa94e42e64a07351c8e9722c578e94b43a811d8 /indra/llcorehttp/_httpopsetget.cpp | |
| parent | 6036ee9c421154a83a306bc16533e47f9494fd32 (diff) | |
| parent | 185169cbbecebe2a35dbd937d6fb4e0a30fa1832 (diff) | |
Pull and merge from https://bitbucket.org/lindenlab/viewer-development.
Diffstat (limited to 'indra/llcorehttp/_httpopsetget.cpp')
| -rw-r--r-- | indra/llcorehttp/_httpopsetget.cpp | 97 | 
1 files changed, 97 insertions, 0 deletions
| diff --git a/indra/llcorehttp/_httpopsetget.cpp b/indra/llcorehttp/_httpopsetget.cpp new file mode 100644 index 0000000000..8198528a9b --- /dev/null +++ b/indra/llcorehttp/_httpopsetget.cpp @@ -0,0 +1,97 @@ +/** + * @file _httpopsetget.cpp + * @brief Definitions for internal class HttpOpSetGet + * + * $LicenseInfo:firstyear=2012&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2012, 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 "_httpopsetget.h" + +#include "httpcommon.h" + +#include "_httpservice.h" +#include "_httppolicy.h" + + +namespace LLCore +{ + + +// ================================== +// HttpOpSetget +// ================================== + + +HttpOpSetGet::HttpOpSetGet() +	: HttpOperation(), +	  mIsGlobal(false), +	  mDoSet(false), +	  mSetting(-1),				// Nothing requested +	  mLongValue(0L) +{} + + +HttpOpSetGet::~HttpOpSetGet() +{} + + +void HttpOpSetGet::setupGet(HttpRequest::EGlobalPolicy setting) +{ +	mIsGlobal = true; +	mSetting = setting; +} + + +void HttpOpSetGet::setupSet(HttpRequest::EGlobalPolicy setting, const std::string & value) +{ +	mIsGlobal = true; +	mDoSet = true; +	mSetting = setting; +	mStrValue = value; +} + + +void HttpOpSetGet::stageFromRequest(HttpService * service) +{ +	HttpPolicyGlobal & pol_opt(service->getPolicy().getGlobalOptions()); +	HttpRequest::EGlobalPolicy setting(static_cast<HttpRequest::EGlobalPolicy>(mSetting)); +	 +	if (mDoSet) +	{ +		mStatus = pol_opt.set(setting, mStrValue); +	} +	if (mStatus) +	{ +		const std::string * value(NULL); +		if ((mStatus = pol_opt.get(setting, &value))) +		{ +			mStrValue = *value; +		} +	} +	 +	addAsReply(); +} + + +}   // end namespace LLCore + +		 | 
