Comments. Removed unused definition.
[metaproxy-moved-to-github.git] / src / filter_session_shared.cpp
index c4d8a8c..67f13e7 100644 (file)
@@ -1,7 +1,5 @@
-/* $Id: filter_session_shared.cpp,v 1.19 2008-01-21 15:23:11 adam Exp $
-   Copyright (c) 2005-2007, Index Data.
-
-This file is part of Metaproxy.
+/* This file is part of Metaproxy.
+   Copyright (C) 2005-2008 Index Data
 
 Metaproxy is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -14,10 +12,9 @@ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
 You should have received a copy of the GNU General Public License
-along with Metaproxy; see the file LICENSE.  If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
- */
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
 
 #include "config.hpp"
 
@@ -49,6 +46,7 @@ namespace yf = metaproxy_1::filter;
 namespace metaproxy_1 {
 
     namespace filter {
+        // key for session.. We'll only share sessions with same InitKey
         class SessionShared::InitKey {
         public:
             bool operator < (const SessionShared::InitKey &k) const;
@@ -56,13 +54,13 @@ namespace metaproxy_1 {
             InitKey(const InitKey &);
             ~InitKey();
         private:
-            InitKey &operator = (const InitKey &k);
             char *m_idAuthentication_buf;
             int m_idAuthentication_size;
             char *m_otherInfo_buf;
             int m_otherInfo_size;
             ODR m_odr;
         };
+        // worker thread .. for expiry of sessions
         class SessionShared::Worker {
         public:
             Worker(SessionShared::Rep *rep);
@@ -70,6 +68,7 @@ namespace metaproxy_1 {
         private:
             SessionShared::Rep *m_p;
         };
+        // backend result set
         class SessionShared::BackendSet {
         public:
             std::string m_result_set_id;
@@ -87,6 +86,7 @@ namespace metaproxy_1 {
                 const Z_APDU *apdu_req,
                 const BackendInstancePtr bp);
         };
+        // backend connection instance
         class SessionShared::BackendInstance {
             friend class Rep;
             friend class BackendClass;
@@ -101,6 +101,7 @@ namespace metaproxy_1 {
             mp::Package * m_close_package;
             ~BackendInstance();
         };
+        // backends of some class (all with same InitKey)
         class SessionShared::BackendClass : boost::noncopyable {
             friend class Rep;
             friend struct Frontend;
@@ -111,7 +112,7 @@ namespace metaproxy_1 {
             BackendInstancePtr get_backend(const Package &package);
             void use_backend(BackendInstancePtr b);
             void release_backend(BackendInstancePtr b);
-            void expire();
+            void expire_class();
             yazpp_1::GDU m_init_request;
             yazpp_1::GDU m_init_response;
             boost::mutex m_mutex_backend_class;
@@ -126,6 +127,7 @@ namespace metaproxy_1 {
                          int session_ttl);
             ~BackendClass();
         };
+        // frontend result set
         class SessionShared::FrontendSet {
             Databases m_databases;
             yazpp_1::Yaz_Z_Query m_query;
@@ -137,6 +139,7 @@ namespace metaproxy_1 {
                 const yazpp_1::Yaz_Z_Query &query);
             FrontendSet();
         };
+        // frontend session
         struct SessionShared::Frontend {
             Frontend(Rep *rep);
             ~Frontend();
@@ -160,6 +163,7 @@ namespace metaproxy_1 {
             BackendClassPtr m_backend_class;
             FrontendSets m_frontend_sets;
         };            
+        // representation
         class SessionShared::Rep {
             friend class SessionShared;
             friend struct Frontend;
@@ -855,7 +859,7 @@ void yf::SessionShared::Worker::operator() (void)
     m_p->expire();
 }
 
-void yf::SessionShared::BackendClass::expire()
+void yf::SessionShared::BackendClass::expire_class()
 {
     time_t now;
     time(&now);
@@ -898,7 +902,7 @@ void yf::SessionShared::Rep::expire()
         
         BackendClassMap::const_iterator b_it = m_backend_map.begin();
         for (; b_it != m_backend_map.end(); b_it++)
-            b_it->second->expire();
+            b_it->second->expire_class();
     }
 }
 
@@ -1035,7 +1039,7 @@ void yf::SessionShared::process(mp::Package &package) const
     m_p->release_frontend(package);
 }
 
-void yf::SessionShared::configure(const xmlNode *ptr)
+void yf::SessionShared::configure(const xmlNode *ptr, bool test_only)
 {
     for (ptr = ptr->children; ptr; ptr = ptr->next)
     {