Move config logic into an "XML" SP plugin, divorce shibd and modules from old libs.
[shibboleth/cpp-sp.git] / shibsp / SPConfig.h
index 47f5e70..70b46c2 100644 (file)
@@ -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.
@@ -38,6 +38,7 @@ namespace shibsp {
     class SHIBSP_API ListenerService;
     class SHIBSP_API RequestMapper;
     class SHIBSP_API ServiceProvider;
+    class SHIBSP_API SessionCache;
 
 #if defined (_MSC_VER)
     #pragma warning( push )
@@ -69,7 +70,7 @@ namespace shibsp {
             Metadata = 4,
             Trust = 8,
             Credentials = 16,
-            AAP = 32,
+            AttributeResolver = 32,
             RequestMapping = 64,
             OutOfProcess = 128,
             InProcess = 256,
@@ -132,6 +133,9 @@ namespace shibsp {
             return m_serviceProvider;
         }
 
+        /** Separator for serialized values of multi-valued attributes. */
+        char attribute_value_delimeter;
+        
         /**
          * Manages factories for AccessControl plugins.
          */
@@ -168,6 +172,11 @@ namespace shibsp {
         xmltooling::PluginManager<ServiceProvider,const xercesc::DOMElement*> ServiceProviderManager;
 
         /**
+         * Manages factories for SessionCache plugins.
+         */
+        xmltooling::PluginManager<SessionCache,const xercesc::DOMElement*> SessionCacheManager;
+
+        /**
          * Manages factories for Handler plugins that implement SessionInitiator functionality.
          */
         xmltooling::PluginManager<Handler,const xercesc::DOMElement*> SessionInitiatorManager;
@@ -178,7 +187,7 @@ namespace shibsp {
         xmltooling::PluginManager<Handler,const xercesc::DOMElement*> SingleLogoutServiceManager;
 
     protected:
-        SPConfig() : m_serviceProvider(NULL) {}
+        SPConfig() : attribute_value_delimeter(';'), m_serviceProvider(NULL), m_features(0) {}
         
         /** Global ServiceProvider instance. */
         ServiceProvider* m_serviceProvider;