X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2FXMLToolingConfig.h;h=a16b806f632281a4b49f1331d7dfd48cff5b5ff8;hb=6505807a62569ce65803b448b07a6872c6af2512;hp=4111fe0ac1c6b9b036d38be8d8710d234ea234ef;hpb=e5b5c9e4e7320a5199116fbf389d3d462fc754cc;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/XMLToolingConfig.h b/xmltooling/XMLToolingConfig.h index 4111fe0..a16b806 100644 --- a/xmltooling/XMLToolingConfig.h +++ b/xmltooling/XMLToolingConfig.h @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Internet2 + * Copyright 2001-2007 Internet2 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,9 +28,12 @@ #include #ifndef XMLTOOLING_NO_XMLSEC -namespace xmlsignature { +namespace xmltooling { class XMLTOOL_API CredentialResolver; - class XMLTOOL_API KeyResolver; + class XMLTOOL_API KeyInfoSource; + class XMLTOOL_API KeyInfoResolver; + class XMLTOOL_API TrustEngine; + class XMLTOOL_API XSECCryptoX509CRL; }; #endif @@ -45,9 +48,7 @@ namespace xmltooling { class XMLTOOL_API SOAPTransport; class XMLTOOL_API StorageService; class XMLTOOL_API TemplateEngine; - class XMLTOOL_API TrustEngine; - class XMLTOOL_API KeyInfoSource; - class XMLTOOL_API XSECCryptoX509CRL; + class XMLTOOL_API URLEncoder; /** * Singleton object that manages library startup/shutdown.configuration. @@ -60,13 +61,20 @@ namespace xmltooling { { MAKE_NONCOPYABLE(XMLToolingConfig); protected: - XMLToolingConfig() : m_replayCache(NULL), clock_skew_secs(180) {} + XMLToolingConfig() : m_keyInfoResolver(NULL), m_replayCache(NULL), m_templateEngine(NULL), m_urlEncoder(NULL), clock_skew_secs(180) {} + /** Global KeyInfoResolver instance. */ + KeyInfoResolver* m_keyInfoResolver; + /** Global ReplayCache instance. */ ReplayCache* m_replayCache; /** Global TemplateEngine instance. */ TemplateEngine* m_templateEngine; + + /** Global URLEncoder instance for use by URL-related functions. */ + URLEncoder* m_urlEncoder; + public: virtual ~XMLToolingConfig() {} @@ -140,6 +148,24 @@ namespace xmltooling { virtual ParserPool& getValidatingParser() const=0; /** + * Sets the global KeyInfoResolver instance. + * 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 + */ + void setKeyInfoResolver(KeyInfoResolver* keyInfoResolver); + + /** + * Returns the global KeyInfoResolver instance. + * + * @return global KeyInfoResolver or NULL + */ + const KeyInfoResolver* getKeyInfoResolver() const { + return m_keyInfoResolver; + } + + /** * Sets the global ReplayCache instance. * This method must be externally synchronized with any code that uses the object. * Any previously set object is destroyed. @@ -158,6 +184,24 @@ namespace xmltooling { } /** + * Sets the global URLEncoder instance. + * 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 + */ + void setURLEncoder(URLEncoder* urlEncoder); + + /** + * Returns the global URLEncoder instance. + * + * @return global URLEncoder or NULL + */ + const URLEncoder* getURLEncoder() const { + return m_urlEncoder; + } + + /** * Sets the global TemplateEngine instance. * This method must be externally synchronized with any code that uses the object. * Any previously set object is destroyed. @@ -195,14 +239,14 @@ namespace xmltooling { virtual XSECCryptoX509CRL* X509CRL() const=0; /** - * Manages factories for KeyResolver plugins. + * Manages factories for KeyInfoResolver plugins. */ - PluginManager KeyResolverManager; + PluginManager KeyInfoResolverManager; /** * Manages factories for CredentialResolver plugins. */ - PluginManager CredentialResolverManager; + PluginManager CredentialResolverManager; /** * Manages factories for TrustEngine plugins. @@ -212,8 +256,10 @@ namespace xmltooling { /** * Manages factories for SOAPTransport plugins. + * + *

The factory interface takes a peer name/endpoint pair. */ - PluginManager > SOAPTransportManager; + PluginManager > SOAPTransportManager; /** * Manages factories for StorageService plugins.