#ifndef SESSION_H #define SESSION_H #include #include #include #include class Session { public: typedef std::map Values; Session(); virtual ~Session() = 0; virtual Glib::ustring GetValue(const Glib::ustring & name) const = 0; virtual Values GetValuesCopy() const = 0; virtual void SetValue(const Glib::ustring & name, const Glib::ustring & value) = 0; virtual void ClearValue(const Glib::ustring & name) = 0; virtual time_t ExpiryTime() const = 0; protected: virtual void ExpiryTime(time_t) = 0; friend class SessionContainer; }; typedef boost::shared_ptr SessionPtr; class SessionContainer { public: SessionContainer(); virtual ~SessionContainer() = 0; SessionPtr GetSession(boost::uuids::uuid & sid); virtual void CleanUp() { } protected: virtual SessionPtr getSession(boost::uuids::uuid & sid) = 0; }; #endif