#ifndef SESSION_H #define SESSION_H #include #include #include #include "intrusivePtrBase.h" #include "variables.h" #include "exceptions.h" /// Base class for classes implementing session variable storage class Session : public virtual IntrusivePtrBase { public: SimpleMessageException(VariableNotFound); typedef std::map Values; Session(); virtual ~Session() = 0; virtual const VariableType & GetValue(const Glib::ustring & name) const = 0; virtual Values GetValuesCopy() const = 0; virtual void SetValue(const Glib::ustring & name, const VariableType & 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::intrusive_ptr SessionPtr; #endif