diff -r 000000000000 -r dd21522fd290 browserutilities/favouritesengine/ClientServer/srvinc/FavouritesSrvSession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/favouritesengine/ClientServer/srvinc/FavouritesSrvSession.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,168 @@ +/* +* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Declaration of class CFavouritesSession +* +* +*/ + + +#ifndef FAVOURITES_SRV_SESSION_H +#define FAVOURITES_SRV_SESSION_H + +// INCLUDES + +#include +#include +#include +#include "FavouritesSrv.h" + +// FORWARD DECLARATION +class TFavouritesHandle; +class TFavouritesSessionEntry; +class MStreamBuf; + +// CLASS DECLARATION + +/** +* Favourites Engine Server Session. +*/ +NONSHARABLE_CLASS(CFavouritesSession) : public CSession2 + { + + public: // construct / destruct + + /** + * Two phase constructor. Leaves on failure. + */ + static CFavouritesSession* NewL(); + + /** + * Destructor. + */ + virtual ~CFavouritesSession(); + + protected: // construct + + /** + * Constructor. Leaves on failure. + */ + CFavouritesSession(); + + /** + * Second phase constructor. Leaves on failure. + */ + void ConstructL(); + + public: // From CSession2 + + /** + * Count resources. + * @return Resource count. + */ + virtual TInt CountResources(); + + /** + * Service message. + * @param aMessage Message. + */ + virtual void ServiceL( const RMessage2& aMessage ); + + /** + * Error in message processing. + * @param aMessage Message. + * @param aError Error. + */ + virtual void ServiceError( const RMessage2& aMessage, TInt aError ); + + public: // New methods + + /** + * Access the server. + * @return The server. + */ + inline CFavouritesSrv& Server() const; + + private: // Entry / object management: entries. + + /** + * Create a new entry and return its handle. Possibly allocates. + * @return Handle for the new empty entry. + */ + TFavouritesHandle NewHandleL(); + + /** + * Get entry for handle. Can leave with KErrBadHandle. + * @param aHandle Handle to get entry for. + * @return The entry for this handle. + */ + TFavouritesSessionEntry& EntryL( TFavouritesHandle aHandle ); + + /** + * Get entry for handle. Panics server if no such handle. + * @param aHandle Handle to get entry for. + * @return The entry for this handle. + */ + TFavouritesSessionEntry& Entry( TFavouritesHandle aHandle ); + + /** + * Get a new check number. + * @return New check number. + */ + TInt NextChkNum(); + + private: // New methods: objects. + + /** + * Create and open a new stream hosted by aHost and return its handle. + * @param aHost Stream buffer hosting the stream. Ownership taken. + * @param aMessage If there is data, length is sent back in arg 3 of + * this message. + * @return Handle of new stream. + */ + TFavouritesHandle NewStreamL + ( MStreamBuf& aHost, const RMessage2& aMessage ); + + private: // new methods + + /** + * Get directory for named database. + * @param aName Database name. + * @param aParse Directory path returned here. + */ + void DatabaseDirL( const TDesC& aName, TParse& aParse ); + + /** + * Delete directory with contents. Leaves with KErrInUse if there are + * any open files. + * @param aParse Path. + */ + void DeleteDirL( const TParse& aParse ); + + private: // Data + + RFs iFs; ///< File server session handle. + RDbs iDbs; ///< DBMS session handle. + TFavouritesSessionEntry* iEntries; ///< Session object entries. Owned. + TInt iNumEntries; ///< Number of session entries. + TInt iChkNum; ///< Check number. + TParse iParse; ///< Misc. usage off stack. + +}; + +#include "FavouritesSrvSession.inl" + +#endif + +// End of File