Support for a catalog path.
[shibboleth/cpp-xmltooling.git] / xmltooling / XMLToolingConfig.h
index 5241fe4..f60a06a 100644 (file)
 #define __xmltooling_config_h__\r
 \r
 #include <xmltooling/Lockable.h>\r
+#include <xmltooling/PluginManager.h>\r
 #include <xmltooling/util/ParserPool.h>\r
 \r
+#ifndef XMLTOOLING_NO_XMLSEC\r
+namespace xmlsignature {\r
+    class XMLTOOL_API CredentialResolver;\r
+    class XMLTOOL_API KeyResolver;\r
+};\r
+#endif\r
+\r
+#if defined (_MSC_VER)\r
+    #pragma warning( push )\r
+    #pragma warning( disable : 4251 )\r
+#endif\r
+\r
 namespace xmltooling {\r
+    \r
+    class XMLTOOL_API TrustEngine;\r
+    class XMLTOOL_API XSECCryptoX509CRL;\r
 \r
     /**\r
      * Singleton object that manages library startup/shutdown.configuration.\r
@@ -109,6 +125,35 @@ namespace xmltooling {
          * @return reference to a validating parser pool.\r
          */\r
         virtual ParserPool& getValidatingParser() const=0;\r
+        \r
+        /**\r
+         * Set to catalog files to load into validating parser pool at initialization time.\r
+         * Like other path settings, the separator depends on the platform\r
+         * (semicolon on Windows, colon otherwise). \r
+         */\r
+        std::string catalog_path;\r
+\r
+#ifndef XMLTOOLING_NO_XMLSEC\r
+        /**\r
+         * Returns an X.509 CRL implementation object.\r
+         */\r
+        virtual XSECCryptoX509CRL* X509CRL() const=0;\r
+\r
+        /**\r
+         * Manages factories for KeyResolver plugins.\r
+         */\r
+        PluginManager<xmlsignature::KeyResolver,const DOMElement*> KeyResolverManager;\r
+\r
+        /**\r
+         * Manages factories for CredentialResolver plugins.\r
+         */\r
+        PluginManager<xmlsignature::CredentialResolver,const DOMElement*> CredentialResolverManager;\r
+\r
+        /**\r
+         * Manages factories for TrustEngine plugins.\r
+         */\r
+        PluginManager<TrustEngine,const DOMElement*> TrustEngineManager;\r
+#endif\r
 \r
     protected:\r
         XMLToolingConfig() {}\r
@@ -116,4 +161,8 @@ namespace xmltooling {
 \r
 };\r
 \r
+#if defined (_MSC_VER)\r
+    #pragma warning( pop )\r
+#endif\r
+\r
 #endif /* __xmltooling_config_h__ */\r