X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fsession.hpp;h=b4d8916b62adcee27300330921d4509ed7963a83;hb=b3a5a3535ff97f71581c9b496f95e0820120f743;hp=148749dd578d3d81d75eb79dabfda74d243c48ad;hpb=cf09b1981338f07c333e43e0a2c907012c841c5d;p=metaproxy-moved-to-github.git diff --git a/src/session.hpp b/src/session.hpp index 148749d..b4d8916 100644 --- a/src/session.hpp +++ b/src/session.hpp @@ -1,4 +1,4 @@ -/* $Id: session.hpp,v 1.9 2005-10-25 11:48:30 adam Exp $ +/* $Id: session.hpp,v 1.10 2005-10-25 21:32:01 adam Exp $ Copyright (c) 2005, Index Data. %LICENSE% @@ -8,7 +8,7 @@ #define SESSION_HPP //#include - +#include #include namespace yp2 { @@ -70,6 +70,27 @@ namespace yp2 { static unsigned long int m_global_id; }; + + template class session_map { + public: + void create(T &t, const yp2::Session &s) { + boost::mutex::scoped_lock lock(m_mutex); + m_map[s] = t; + }; + void release(const yp2::Session &s) { + boost::mutex::scoped_lock lock(m_mutex); + + m_map.erase(s); + }; + bool active(const yp2::Session &s) { + typename std::map::const_iterator it; + it = m_map.find(s); + return it == m_map.end() ? false : true; + } + private: + boost::mutex m_mutex; + std::mapm_map; + }; }