From b2afb8800bb033a04bb3ecdf0363068d56648ef1 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Fri, 15 Aug 2008 23:44:54 -0500 Subject: Second Life viewer sources 1.15.0.2 --- linden/indra/llmessage/llservicebuilder.h | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 linden/indra/llmessage/llservicebuilder.h (limited to 'linden/indra/llmessage/llservicebuilder.h') diff --git a/linden/indra/llmessage/llservicebuilder.h b/linden/indra/llmessage/llservicebuilder.h new file mode 100644 index 0000000..817ea0c --- /dev/null +++ b/linden/indra/llmessage/llservicebuilder.h @@ -0,0 +1,93 @@ +/** +* @file llservicebuilder.h +* @brief Declaration of the LLServiceBuilder class. +* +* Copyright (c) 2007-2007, Linden Research, Inc. +* + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. +*/ + +#ifndef LLSERVICEBUILDER_H +#define LLSERVICEBUILDER_H + +#include +#include +#include "llerror.h" + +class LLSD; + +/** + * @class LLServiceBuilder + * @brief This class builds urls for us to use when making web service calls. + */ + +class LLServiceBuilder +{ + LOG_CLASS(LLServiceBuilder); +public: + LLServiceBuilder(void) {} + ~LLServiceBuilder(void) {} + + /** + * @brief Initialize this object with the service definitions. + * + * @param service_filename The services definition files -- services.xml. + */ + void loadServiceDefinitionsFromFile(const std::string& service_filename); + + /** + * @brief Build a service url if the url needs no construction parameters. + * + * @param service_name The name of the service you want to call. + */ + std::string buildServiceURI(const std::string& service_name); + + /** + * @brief Build a service url if the url with construction parameters. + * + * The parameter substitution supports string substituition from RUSS: + * [[Recursive_URL_Substitution_Syntax]] + * @param service_name The name of the service you want to call. + * @param option_map The parameters in a map of name:value for the service. + */ + std::string buildServiceURI( + const std::string& service_name, + const LLSD& option_map); + +public: + /** + * @brief Helper method which builds construction state for a service + * + * This method should probably be protected, but we need to test this + * method. + */ + void createServiceDefinition( + const std::string& service_name, + LLSD& service_url); + +protected: + std::map mServiceMap; +}; + + + +#endif -- cgit v1.1