System documentation of the GNU Image-Finding Tool

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

CSession Class Reference

A class containing a session. More...

#include <CSessionManager.h>

List of all members.

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
CAlgorithmgetActiveAlgorithm ()
 get the algorithm of this session
bool setActiveAlgorithm (CAccessorAdminCollection &inCaller, CAlgorithmCollection &inAlgorithmCollection, CAlgorithm *inActiveAlgorithm, CStaticQueryFactory &inBaseTypeFactory)
 set the algorithm of this session.
CXMLElementquery (CSessionManager &inCaller, const CXMLElement &inQuery)
 performing a query
CXMLElementgetRandomImages (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
CAlgorithmmActiveAlgorithm
 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

CQueryTreeBuilder mQueryTreeBuilder


Detailed Description

A class containing a session.

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

Author:
Wolfgang Müller


Member Function Documentation

void CSession::commitLanguages const CI18nTranslator inTranslator  ) 
 

commit the list of languages.

That means, here the actual language that will be used throughout the translation is determined

bool CSession::open  ) 
 

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)

CXMLElement* CSession::query CSessionManager inCaller,
const CXMLElement inQuery
 

performing a query

Gets from the current algorithm the right inSubAlgorithm, from that the right CQuery and hands parameters through to it.

bool CSession::setActiveAlgorithm CAccessorAdminCollection inCaller,
CAlgorithmCollection inAlgorithmCollection,
CAlgorithm inActiveAlgorithm,
CStaticQueryFactory inBaseTypeFactory
 

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.


The documentation for this class was generated from the following file:
Need for discussion? Want to contribute? Contact
help-gift@gnu.org Generated using Doxygen