- //Session() {};
-
- /// returns next id, global state of id protected by boost::mutex
- long unsigned int id() {
- boost::mutex::scoped_lock scoped_lock(m_mutex);
- ++m_id;
- return m_id;
- };
- private:
- // disabled because class is singleton
- // Session(const Session &);
-
- // disabled because class is singleton
- // Session& operator=(const Session &);
+
+ /// create new session with new unique id
+ Session() {
+ boost::mutex::scoped_lock scoped_lock(m_mutex);
+ ++m_global_id;
+ m_id = m_global_id;
+ m_close = false;
+ };
+
+ /// copy session including old id
+ Session(const Session &s) : m_id(s.m_id), m_close(s.m_close) {};
+
+ Session& operator=(const Session &s) {
+ if (this != &s)
+ {
+ m_id = s.m_id;
+ m_close = s.m_close;
+ }
+ return *this;
+ }