#include <CSessionManager.h>
Public Member Functions | |
CSession () | |
Constructors. | |
CSession (string inUser, string inID, string inSessionName, CAlgorithm *inActiveAlgorithm) | |
~CSession () | |
destroys all members | |
ostream & | write (ostream &outStream) const |
Read the state. | |
istream & | read (istream &inStream) |
Write the state. | |
string | getUser () const |
get user of this session | |
void | setUser (const string &inUser) |
set user of this session | |
string | getID () const |
set ID of this session | |
void | setID (const string &inID) |
get ID of this session | |
string | getSessionName () const |
get the displayname of this session | |
void | setSessionName (const string &inSessionName) |
set the displayname of this session | |
CAlgorithm * | getActiveAlgorithm () |
get the algorithm of this session | |
bool | setActiveAlgorithm (CAccessorAdminCollection &inCaller, CAlgorithmCollection &inAlgorithmCollection, CAlgorithm *inActiveAlgorithm, CStaticQueryFactory &inBaseTypeFactory) |
set the algorithm of this session. | |
CXMLElement * | query (CSessionManager &inCaller, const CXMLElement &inQuery) |
performing a query | |
CXMLElement * | getRandomImages (CSessionManager &inCaller, const string &inAlgorithm, int inResultSize) |
retrieving random images as seeds | |
bool | open () |
opening this session. | |
bool | close () |
Closing this session. | |
bool | rename (const string &inName) |
Renaming this session (calls setSessionName, at present). | |
void | clearLanguages () |
the list of preferred languages of this is cleared | |
void | addLanguage (string inLanguageCode) |
one language code is added at the back of the list of preferred languages | |
void | commitLanguages (const CI18nTranslator &inTranslator) |
commit the list of languages. | |
list< string > | getLanguages () const |
get the preferred languages of this session | |
string | getPreferredLanguage () const |
get the preferred languages of this session | |
string | toXML (bool isPrivate) const |
generating XML output for configuration/shandshake | |
Protected Types | |
typedef list< string > | CLanguageList |
the list of languages to be used | |
Protected Attributes | |
string | mPreferredLanguage |
the language to be used in this session | |
CLanguageList | mLanguages |
the list of languages to be used | |
CMutex | mMutexSession |
the mutex for this session | |
bool | mIsOpen |
string | mUser |
string | mID |
string | mSessionName |
the name of this session | |
CAlgorithm * | mActiveAlgorithm |
The algorithm used for the next query At present this fully describes a session. | |
pair< CQueryContainer *, CQueryTreeNode * > | mQueryTree |
The information about the current query tree. | |
Static Protected Attributes | |
static CQueryTreeBuilder | mQueryTreeBuilder |
At present a session is just a quite rudimentary container for an algorithm.
Later we hope to make sessions persistent (using blobs in msql, for example).
ATTENTION MULTITHREADING: WHAT TO LOCK AND WHAT TO UNLOCK IS NOT ENTIRELY TRIVIAL THIS MIGHT BE A SOURCE OF MISTAKES
|
commit the list of languages. That means, here the actual language that will be used throughout the translation is determined |
|
opening this session. This implements a lock, such that one user can have several open session which do not interfere. The return value tells the use if the open was successful (true) |
|
performing a query Gets from the current algorithm the right inSubAlgorithm, from that the right CQuery and hands parameters through to it. |
|
set the algorithm of this session. in fact this amounts to building a complete query tree. We also would like to do a bit of tree matching to see, how much of the query we can rescue after reconfiguration. |