* Library configuration \r
*/\r
\r
-#if !defined(__xmltooling_config_h__)\r
+#ifndef __xmltooling_config_h__\r
#define __xmltooling_config_h__\r
\r
-#include <xmltooling/ILockable.h>\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
* obtain a global system lock, but the actual configuration itself is not\r
* synchronized.\r
*/\r
- class XMLTOOL_API XMLToolingConfig : public ILockable\r
+ class XMLTOOL_API XMLToolingConfig : public Lockable\r
{\r
MAKE_NONCOPYABLE(XMLToolingConfig);\r
public:\r
* @return true iff configuration was successful\r
*/\r
virtual bool log_config(const char* config=NULL)=0;\r
- \r
+\r
+ /**\r
+ * Obtains a non-validating parser pool.\r
+ * Library must be initialized first.\r
+ *\r
+ * @return reference to a non-validating parser pool.\r
+ */\r
+ virtual ParserPool& getParser() const=0;\r
+\r
+ /**\r
+ * Obtains a validating parser pool.\r
+ * Library must be initialized first. Schema/catalog registration must be\r
+ * externally synchronized.\r
+ *\r
+ * @return reference to a validating parser pool.\r
+ */\r
+ virtual ParserPool& getValidatingParser() const=0;\r
+\r
+#ifndef XMLTOOLING_NO_XMLSEC\r
+ /**\r
+ * Manages factories for KeyResolver plugins.\r
+ */\r
+ xmltooling::PluginManager<xmlsignature::KeyResolver,const DOMElement*> KeyResolverManager;\r
+\r
+ /**\r
+ * Manages factories for CredentialResolver plugins.\r
+ */\r
+ xmltooling::PluginManager<xmlsignature::CredentialResolver,const DOMElement*> CredentialResolverManager;\r
+#endif\r
+\r
protected:\r
XMLToolingConfig() {}\r
};\r
\r
};\r
\r
+#if defined (_MSC_VER)\r
+ #pragma warning( pop )\r
+#endif\r
+\r
#endif /* __xmltooling_config_h__ */\r