#ifndef SESSION_HPP
#define SESSION_HPP
-#include <stdexcept>
-
+//#include <stdexcept>
#include <boost/thread/mutex.hpp>
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);
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: