Some root interfaces and configuration machinery
[shibboleth/cpp-xmltooling.git] / xmltooling / internal.h
index 03f6d3d..5e6a0f8 100644 (file)
 #endif\r
 \r
 #include "base.h"\r
+#include "XMLToolingConfig.h"\r
+\r
+#include <vector>\r
 \r
 #define XMLTOOLING_LOGCAT "XMLTooling"\r
 \r
+namespace {\r
+    \r
+    class XMLToolingInternalConfig : public xmltooling::XMLToolingConfig\r
+    {\r
+    public:\r
+        XMLToolingInternalConfig() : m_lock(NULL) {}\r
+\r
+        // global per-process setup and shutdown of runtime\r
+        bool init();\r
+        void term();\r
+\r
+        // global mutex available to library applications\r
+        xmltooling::ILockable& lock();\r
+        void unlock();\r
+\r
+        // configuration\r
+        bool load_library(const char* path, void* context=NULL);\r
+        bool log_config(const char* config=NULL);\r
+\r
+    private:\r
+        std::vector<void*> m_libhandles;\r
+        void* m_lock;\r
+        //XSECProvider* m_xsec;\r
+        //PlugManager m_plugMgr;\r
+    };\r
+\r
+};\r
+\r
 #endif /* __xmltooling_internal_h__ */\r