williamr@2: /* williamr@2: * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Declaration of FavouritesFile williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef FAVOURITES_FILE_H williamr@2: #define FAVOURITES_FILE_H williamr@2: williamr@2: // INCLUDES williamr@2: williamr@4: #include williamr@2: williamr@2: // FORWARD DECLARATION williamr@2: williamr@2: class RFavouritesDb; williamr@2: class CFavouritesFileImpl; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * RFavouritesFile is a class derived from RFavouritesHandle. williamr@2: * Each favourites item or folder can have an associated file williamr@2: * with arbitrary content. williamr@2: */ williamr@2: class RFavouritesFile: public RFavouritesHandle williamr@2: { williamr@2: williamr@2: public: // Constructor and destructor williamr@2: williamr@2: /** williamr@2: * Constructor. williamr@2: * @since 0.9 williamr@2: */ williamr@2: inline RFavouritesFile(); williamr@2: williamr@2: /** williamr@2: * Close this object. williamr@2: * @since 0.9 williamr@2: * @return void williamr@2: */ williamr@2: IMPORT_C void Close(); williamr@2: williamr@2: /** williamr@2: * Open existing file with shared read-access. williamr@2: * @since 0.9 williamr@2: * @param aDb Database handle. williamr@2: * @param aUid Uid of item. williamr@2: * @return Error code. williamr@2: */ williamr@2: IMPORT_C TInt Open( RFavouritesDb& aDb, TInt aUid ); williamr@2: williamr@2: /** williamr@2: * Create new file / replace existing with exclusive write-access. williamr@2: * Existing content of the file, if any, is lost. williamr@2: * @since 0.9 williamr@2: * @param aDb Database handle. williamr@2: * @param aUid Uid of item. williamr@2: * @return Error code. williamr@2: */ williamr@2: IMPORT_C TInt Replace( RFavouritesDb& aDb, TInt aUid ); williamr@2: williamr@2: public: // new methods williamr@2: williamr@2: /** williamr@2: * Read from file. williamr@2: * @since 0.9 williamr@2: * @param aDes Descriptor into which binary data is read. Any existing williamr@2: * contents are overwritten. On return, its length is set to the number williamr@2: * of bytes read. williamr@2: * @return Error code. williamr@2: */ williamr@2: IMPORT_C TInt Read( TDes8& aDes ) const; williamr@2: williamr@2: /** williamr@2: * Writes to file. williamr@2: * @since 0.9 williamr@2: * @param aDes Descriptor from which binary data is written. williamr@2: * @return Error code. williamr@2: */ williamr@2: IMPORT_C TInt Write( const TDesC8& aDes ); williamr@2: williamr@2: /** williamr@2: * Get the size of the file. williamr@2: * @since 0.9 williamr@2: * @param aSize Gives back the size of the file. williamr@2: * @return Error code. williamr@2: */ williamr@2: IMPORT_C TInt Size(TInt &aSize) const; williamr@2: williamr@2: private: // new methods williamr@2: williamr@2: /** williamr@2: * Implementation of Open functions. williamr@2: * @since 0.9 williamr@2: * @param aDb Database handle. williamr@2: * @param aUid Uid of item. williamr@2: * @param aFunction Function. williamr@2: * @return Error code. williamr@2: */ williamr@2: TInt DoOpen( RFavouritesDb& aDb, TInt aUid, TInt aFunction ); williamr@2: williamr@2: private: // data williamr@2: williamr@2: CFavouritesFileImpl* iImpl; ///< Implementation. Owned. williamr@2: williamr@2: }; williamr@2: williamr@4: #include williamr@2: williamr@2: #endif williamr@2: williamr@2: // End of File