X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2FXMLToolingConfig.h;h=76d81fc0df0ccff0d4107103592e039a6ffd3b54;hb=211d157271f527521d46875c1c220734f2fa1136;hp=9333bce03129bb45d0c75a5e867f176163ef5c5a;hpb=3cbac01758bb49935d8c37d4211fb59b753cc1a1;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/XMLToolingConfig.h b/xmltooling/XMLToolingConfig.h index 9333bce..76d81fc 100644 --- a/xmltooling/XMLToolingConfig.h +++ b/xmltooling/XMLToolingConfig.h @@ -1,17 +1,21 @@ -/* - * Copyright 2001-2009 Internet2 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/** + * Licensed to the University Corporation for Advanced Internet + * Development, Inc. (UCAID) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for + * additional information regarding copyright ownership. + * + * UCAID licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the + * License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. */ /** @@ -37,6 +41,7 @@ namespace xmltooling { + class XMLTOOL_API Mutex; class XMLTOOL_API ParserPool; class XMLTOOL_API PathResolver; class XMLTOOL_API TemplateEngine; @@ -48,6 +53,7 @@ namespace xmltooling { #ifndef XMLTOOLING_NO_XMLSEC class XMLTOOL_API CredentialResolver; class XMLTOOL_API KeyInfoResolver; + class XMLTOOL_API PathValidator; class XMLTOOL_API TrustEngine; class XMLTOOL_API XSECCryptoX509CRL; #endif @@ -55,7 +61,7 @@ namespace xmltooling { /** * Singleton object that manages library startup/shutdown.configuration. * - * A locking interface is supplied as a convenience for code that wants to + *
A locking interface is supplied as a convenience for code that wants to * obtain a global system lock, but the actual configuration itself is not * synchronized. */ @@ -104,42 +110,40 @@ namespace xmltooling { /** * Shuts down library - * - * Each process using the library SHOULD call this function exactly once + *
Each process using the library SHOULD call this function exactly once
* before terminating itself
*/
virtual void term()=0;
/**
* Loads a shared/dynamic library extension.
- *
- * Extension libraries are managed using a pair of "C" linkage functions:
+ *
+ *
Extension libraries are managed using a pair of "C" linkage functions:
* extern "C" int xmltooling_extension_init(void* context);
* extern "C" void xmltooling_extension_term();
- *
- * This method is internally synchronized.
+ *
+ *
This method is internally synchronized. * * @param path pathname of shared library to load into process * @param context arbitrary data to pass to library initialization hook * @return true iff library was loaded successfully */ - virtual bool load_library(const char* path, void* context=NULL)=0; + virtual bool load_library(const char* path, void* context=nullptr)=0; /** * Configure logging system. - * - * May be called first, before initializing the library. Other calls to it + *
May be called first, before initializing the library. Other calls to it * must be externally synchronized. * * @param config either a logging configuration file, or a level from the set * (DEBUG, INFO, NOTICE, WARN, ERROR, CRIT, ALERT, FATAL, EMERG) * @return true iff configuration was successful */ - virtual bool log_config(const char* config=NULL)=0; + virtual bool log_config(const char* config=nullptr)=0; /** * Obtains a non-validating parser pool. - * Library must be initialized first. + *
Library must be initialized first. * * @return reference to a non-validating parser pool. */ @@ -147,31 +151,40 @@ namespace xmltooling { /** * Obtains a validating parser pool. - * Library must be initialized first. Schema/catalog registration must be + *
Library must be initialized first. Schema/catalog registration must be * externally synchronized. * * @return reference to a validating parser pool. */ virtual ParserPool& getValidatingParser() const=0; + /** + * Returns a reference to a named mutex. + *
The first access to a given name will create the object. + * + * @param name name of mutex to access + * @return reference to a mutex object + */ + virtual Mutex& getNamedMutex(const char* name)=0; + #ifndef XMLTOOLING_NO_XMLSEC /** * Returns the global KeyInfoResolver instance. * - * @return global KeyInfoResolver or NULL + * @return global KeyInfoResolver or nullptr */ const KeyInfoResolver* getKeyInfoResolver() const; /** * Returns the global ReplayCache instance. * - * @return global ReplayCache or NULL + * @return global ReplayCache or nullptr */ ReplayCache* getReplayCache() const; /** * Sets the global KeyInfoResolver instance. - * This method must be externally synchronized with any code that uses the object. + *
This method must be externally synchronized with any code that uses the object. * Any previously set object is destroyed. * * @param keyInfoResolver new KeyInfoResolver instance to store @@ -180,7 +193,7 @@ namespace xmltooling { /** * Sets the global ReplayCache instance. - * This method must be externally synchronized with any code that uses the object. + *
This method must be externally synchronized with any code that uses the object. * Any previously set object is destroyed. * * @param replayCache new ReplayCache instance to store @@ -191,27 +204,27 @@ namespace xmltooling { /** * Returns the global PathResolver instance. * - * @return global PathResolver or NULL + * @return global PathResolver or nullptr */ PathResolver* getPathResolver() const; /** * Returns the global TemplateEngine instance. * - * @return global TemplateEngine or NULL + * @return global TemplateEngine or nullptr */ TemplateEngine* getTemplateEngine() const; /** * Returns the global URLEncoder instance. * - * @return global URLEncoder or NULL + * @return global URLEncoder or nullptr */ const URLEncoder* getURLEncoder() const; /** * Sets the global PathResolver instance. - * This method must be externally synchronized with any code that uses the object. + *
This method must be externally synchronized with any code that uses the object. * Any previously set object is destroyed. * * @param pathResolver new PathResolver instance to store @@ -220,7 +233,7 @@ namespace xmltooling { /** * Sets the global TemplateEngine instance. - * This method must be externally synchronized with any code that uses the object. + *
This method must be externally synchronized with any code that uses the object. * Any previously set object is destroyed. * * @param templateEngine new TemplateEngine instance to store @@ -229,7 +242,7 @@ namespace xmltooling { /** * Sets the global URLEncoder instance. - * This method must be externally synchronized with any code that uses the object. + *
This method must be externally synchronized with any code that uses the object. * Any previously set object is destroyed. * * @param urlEncoder new URLEncoder instance to store @@ -237,18 +250,29 @@ namespace xmltooling { void setURLEncoder(URLEncoder* urlEncoder); /** + * @deprecated * List of catalog files to load into validating parser pool at initialization time. - * Like other path settings, the separator depends on the platform + *
Like other path settings, the separator depends on the platform
* (semicolon on Windows, colon otherwise).
*/
std::string catalog_path;
-
+
+ /** A User-Agent header to include in HTTP client requests. */
+ std::string user_agent;
+
/**
* Adjusts any clock comparisons to be more liberal/permissive by the
* indicated number of seconds.
*/
unsigned int clock_skew_secs;
+#ifndef XMLTOOLING_LITE
+ /**
+ * Manages factories for StorageService plugins.
+ */
+ PluginManager