File Information
Library: OSP/Web
Package: Web
Header: Poco/OSP/Web/WebSessionStore.h
Description
WebSessionStore is an optional service that is used to persistently store WebSession objects.
Inheritance
Direct Base Classes: Poco::OSP::Service
All Base Classes: Poco::OSP::Service, Poco::RefCountedObject
Member Summary
Member Functions: clearValues, countSessions, expireSession, isA, loadSession, removeValue, saveSession, saveValue, sessionsByValue, type
Inherited Functions: duplicate, isA, referenceCount, release, type
Types Aliases
Ptr
using Ptr = Poco::AutoPtr < WebSessionStore >;
Member Functions
clearValues
virtual Poco::Int64 clearValues(
const std::string & sessionId
) = 0;
Removes all values from the session.
countSessions
virtual std::size_t countSessions() = 0;
Returns the total number of sessions in the store.
expireSession
virtual void expireSession(
const std::string & sessionId,
Poco::Timespan timeout
) = 0;
Resets the session expiration time.
A zero timeout immediately removes the session.
isA
bool isA(
const std::type_info & otherType
) const;
See also: Poco::OSP::Service::isA()
loadSession
virtual std::pair < WebSession::Ptr, bool > loadSession(
Poco::OSP::BundleContext::Ptr pContext,
const std::string & id,
Poco::Int64 version = 0
) = 0;
Loads the persisted session with the given ID, but only if the stored version is greater than the given version.
The minimum stored version number is 1, so if version 0 is specified the session will always be loaded if it exists.
Returns {pSession, true} if a stored session with a higher version number exists. Returns {null, true} if a stored session exists with the same or lower version number. Returns {null, false} if no stored session with the given ID exists.
removeValue
virtual Poco::Int64 removeValue(
const std::string & sessionId,
const std::string & key
) = 0;
Removes the given key from the given session.
Returns the new version number of the session. If the returned version number is one higher than the session's version number, the new version number can be stored.
saveSession
virtual void saveSession(
WebSession::Ptr pSession
) = 0;
Saves the given session.
saveValue
virtual Poco::Int64 saveValue(
const std::string & sessionId,
const std::string & key,
const Poco::Any & value
) = 0;
Saves the value of the given key for the given session.
Returns the new version number of the session. If the returned version number is one higher than the session's version number, the new version number can be stored.
sessionsByValue
virtual std::vector < std::string > sessionsByValue(
const std::string & key,
const Poco::Any & value
) = 0;
Returns a vector containing the session IDs of all sessions having a value with the given key and value. Typically, this is used to obtain all sessions for a given username.
type
const std::type_info & type() const;
See also: Poco::OSP::Service::type()