: m_Request(request), m_Impl(
impl), m_CookieSupport(cookie_sup),
49m_SessionIdName(kDefaultSessionIdName),
50m_SessionCookieDomain(kDefaultSessionCookieDomain),
51m_SessionCookiePath(kDefaultSessionCookiePath)
64 catch(std::exception& e) {
65 ERR_POST(
"Session implementation clean-up error: "<< e.what());
68 ERR_POST(
"Session implementation clean-up error has occurred");
79 "SessionId can not be retrieved from the cgi request");
103 "The session implementation is not set");
106 "The session must be loaded");
119 "The session implementation is not set");
122 "Cannot load deleted session");
134 "The session implementation is not set");
230 boolis_found =
false;
Exception classes used by the NCBI CGI framework.
API to store CGI session data between Web requests.
CCgiSessionException â.
@ eTakeOwnership
An object can take ownership of another.
CCgiCookie * Find(const string &name, const string &domain, const string &path)
Return NULL if cannot find this exact cookie.
const string & GetValue(void) const
All "const string& GetXXX(...)" methods beneath return reference to "NcbiEmptyString" if the requeste...
const string & GetValue() const
Get the value as a string, (necessarily) prefetching it all if applicable; the result remains availab...
const CCgiCookies & GetCookies(void) const
Retrieve the request cookies.
const CCgiEntry & GetEntry(const string &name, bool *is_found=0) const
Get entry value by name.
string GetAttribute(const string &name) const
Get attribute data as string.
CTime m_SessionCookieExpTime
static const char * kDefaultSessionCookieDomain
static const char * kDefaultSessionIdName
bool Exists(void) const
Check if this session object is valid.
void SetId(const string &session_id)
Set session ID.
CCgiSession(const CCgiRequest &request, ICgiSessionStorage *impl, EOwnership impl_ownership=eTakeOwnership, ECookieSupport cookie_support=eUseCookie)
virtual ~ICgiSessionStorage()
void DeleteSession(void)
Delete current session.
ECookieSupport
Specifies if a client session cookie can be used to transfer session id between requests.
unique_ptr< CCgiCookie > m_SessionCookie
virtual void Reset()=0
Reset the session.
TNames GetAttributeNames(void) const
Retrieve names of all attributes attached to this session.
ECookieSupport m_CookieSupport
void CreateNewSession(void)
Create new session.
static const char * kDefaultSessionCookiePath
virtual void ModifySessionId(const string &new_id)=0
Modify session id.
void Load(void)
Load the session.
virtual bool LoadSession(const string &sessionid)=0
Load the session The implementations must handle binary data correctly (e.g.
void RemoveAttribute(const string &name)
Remove attribute from the session.
virtual CNcbiIstream & GetAttrIStream(const string &name, size_t *size=0)=0
Get input stream to read an attribute's data from.
virtual string GetAttribute(const string &name) const =0
Get attribute data as string.
virtual string CreateNewSession()=0
Create a new empty session.
virtual void RemoveAttribute(const string &name)=0
Remove attribute from the session.
virtual void DeleteSession()=0
Delete current session.
void ModifyId(const string &new_session_id)
Modify session ID.
virtual TNames GetAttributeNames(void) const =0
Retrieve names of all attributes attached to this session.
unique_ptr< ICgiSessionStorage > m_ImplGuard
string m_SessionCookiePath
const CCgiRequest & m_Request
const CCgiCookie * GetSessionCookie(void) const
Get a cookie pertaining to the session.
CNcbiIstream & GetAttrIStream(const string &name, size_t *size=NULL)
Get input stream to read an attribute's data from.
const string & GetId(void) const
Get session ID.
ICgiSessionStorage * m_Impl
virtual CNcbiOstream & GetAttrOStream(const string &name)=0
Get output stream to write an attribute's data to.
CNcbiOstream & GetAttrOStream(const string &name)
Get output stream to write an attribute's data to.
string m_SessionCookieDomain
void SetAttribute(const string &name, const string &value)
Set attribute data as a string.
string RetrieveSessionId() const
Retrieve a session id from a query string or a session cookie.
virtual void SetAttribute(const string &name, const string &value)=0
Set attribute data as a string.
@ eUseCookie
A session cookie will be added to the response.
@ eNoCookie
A session cookie will not be added to the response.
@ eImplNotSet
The CGI application didn't set the session implementation.
@ eLoaded
The session is loaded.
@ eDeleted
The session is deleted.
@ eNew
The session has just been created.
@ eNotLoaded
The session has not been loaded yet.
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
bool IsEmpty(void) const
Is time object empty (date and time)?
CTime & AddYear(int years=1, EDaylight adl=eDaylightDefault)
Add specified years and adjust for daylight saving time.
@ eCurrent
Use current time. See also CCurrentTime.
@ eGmt
GMT (Greenwich Mean Time)
enum ENcbiOwnership EOwnership
Ownership relations between objects.
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
Defines: CTimeFormat - storage class for time format.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4