bbd19a091d339ba313ae4ba281fb439dff32d8da
[shibboleth/cpp-sp.git] / shibsp / SessionCache.cpp
1 /*\r
2  *  Copyright 2001-2007 Internet2\r
3  * \r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 /**\r
18  * SessionCache.cpp\r
19  * \r
20  * SessionCache base class and factory registration\r
21  */\r
22 \r
23 #include "internal.h"\r
24 #include "SessionCache.h"\r
25 \r
26 using namespace shibsp;\r
27 using namespace xmltooling;\r
28 \r
29 namespace shibsp {\r
30 \r
31     SHIBSP_DLLLOCAL PluginManager<SessionCache,std::string,const DOMElement*>::Factory RemotedCacheFactory;\r
32     SHIBSP_DLLLOCAL PluginManager<SessionCache,std::string,const DOMElement*>::Factory StorageServiceCacheFactory;\r
33 \r
34     static const XMLCh cacheTimeout[] =     UNICODE_LITERAL_12(c,a,c,h,e,T,i,m,e,o,u,t);\r
35 }\r
36 \r
37 void SHIBSP_API shibsp::registerSessionCaches()\r
38 {\r
39     SPConfig& conf = SPConfig::getConfig();\r
40     conf.SessionCacheManager.registerFactory(REMOTED_SESSION_CACHE, RemotedCacheFactory);\r
41     conf.SessionCacheManager.registerFactory(STORAGESERVICE_SESSION_CACHE, StorageServiceCacheFactory);\r
42 }\r
43 \r
44 SessionCache::SessionCache(const DOMElement* e) : m_cacheTimeout(60*60*8)\r
45 {\r
46     if (e) {\r
47         const XMLCh* tag=e->getAttributeNS(NULL,cacheTimeout);\r
48         if (tag && *tag) {\r
49             m_cacheTimeout = XMLString::parseInt(tag);\r
50             if (!m_cacheTimeout)\r
51                 m_cacheTimeout=60*60*8;\r
52         }\r
53     }\r
54 }\r