session mutex and id counter made static, now many instances of a Session object...
[metaproxy-moved-to-github.git] / src / session.hpp
index c157ffd..504bb14 100644 (file)
@@ -2,8 +2,7 @@
 #ifndef SESSION_HPP
 #define SESSION_HPP
 
-#include <stdexcept>
-
+//#include <stdexcept>
 
 #include <boost/thread/mutex.hpp>
 
@@ -12,7 +11,8 @@ namespace yp2 {
   class Session 
     {
     public:
-      Session() : m_id(0){};
+      //Session() {};
+
       /// returns next id, global state of id protected by boost::mutex
       long unsigned int id() {
           boost::mutex::scoped_lock scoped_lock(m_mutex);
@@ -20,21 +20,27 @@ namespace yp2 {
         return m_id;
       };
     private:
-      /// disabled because class is singleton
-      Session(const Session &);
+      // disabled because class is singleton
+      // Session(const Session &);
 
-      /// disabled because class is singleton
-      Session& operator=(const Session &);
+      // disabled because class is singleton
+      // Session& operator=(const Session &);
 
-      boost::mutex m_mutex;
-      unsigned long int m_id;
+      /// static mutex to lock static m_id
+      static boost::mutex m_mutex;
+
+      /// static m_id to make sure that there is only one id counter
+      static unsigned long int m_id;
       
     };
-
-
   
 }
 
+// initializing static members
+boost::mutex yp2::Session::m_mutex;
+unsigned long int yp2::Session::m_id = 0;
+
+
 #endif
 /*
  * Local variables: