diff -r 88ee4cf65e19 -r 1aa8c82cb4cb remotestoragefw/remotefileengine/inc/rsfwdirent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotestoragefw/remotefileengine/inc/rsfwdirent.h Wed Sep 01 12:15:08 2010 +0100 @@ -0,0 +1,148 @@ +/* +* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Directory entry container + * +*/ + + +#ifndef CRSFWDIRENT_H +#define CRSFWDIRENT_H + +// INCLUDES +#include + +// CONSTANTS + +// DATA TYPES + +// FORWARD DECLARATIONS +class CRsfwDirEntAttr; + +// CLASS DECLARATION +/** + * Directory entry container + * + * @lib rsfwcommon.lib + * @since Series 60 3.1 + */ +class CRsfwDirEnt: public CBase + { +public: + + /** + * Two-phased constructor + * @param aName name of the entry + * @param aAttr attributes - if this parameter is NULL, + * an attribute object with attribute values set to zero will be created. + * The entry takes ownership of the attribute object. + */ + IMPORT_C static CRsfwDirEnt* NewLC(const TDesC& aName, CRsfwDirEntAttr* aAttr); + + /** + * Two-phased constructor + * @param aName name of the entry + * @param aAttr attributes - if this parameter is NULL, + * an attribute object with attribute values set to zero will be created. + * The entry takes ownership of the attribute object. + */ + IMPORT_C static CRsfwDirEnt* NewLC(const TDesC8& aName, CRsfwDirEntAttr* aAttr); + + /** + * Two-phased constructor. + * @param aName name of the entry + * @param aAttr attributes - if this parameter is NULL, + * an attribute object with attribute values set to zero will be created. + * The entry takes ownership of the attribute object. + */ + IMPORT_C static CRsfwDirEnt* NewL(const TDesC& aName, CRsfwDirEntAttr* aAttr); + + /** + * Two-phased constructor. + * @param aName name of the entry + * @param aAttr attributes - if this parameter is NULL, + * an attribute object with attribute values set to zero will be created. + * The entry takes ownership of the attribute object. + */ + IMPORT_C static CRsfwDirEnt* NewL(const TDesC8& aName, CRsfwDirEntAttr* aAttr); + + CRsfwDirEnt(); + + IMPORT_C ~CRsfwDirEnt(); + + /** + * Gets the name of the filesystem object + * @return pointer to the name + */ + IMPORT_C const HBufC* Name() const; + + /** + * Gets the name of the filesystem object + * @param aName name + */ + IMPORT_C void GetName(TDes& aName) const; + + /** + * Gets the name of the filesystem object + * @param aName name + */ + IMPORT_C void GetName(TDes8& aName) const; + + /** + * Sets the name of the filesystem object + * @param aName name + */ + IMPORT_C void SetNameL(const TDesC& aName); + + /** + * Sets the name of the filesystem object + * @param aName name + */ + IMPORT_C void SetNameL(const TDesC8& aName); + + /** + * Returns a pointer to the filesystem object's attributes + * @return pointer to the attributes + */ + IMPORT_C CRsfwDirEntAttr* Attr() const; + + /** + * Returns a pointer to the filesystem object's attributes + * The ownership to the attribute object is transferred to the caller + * @return pointer to the attributes + */ + IMPORT_C CRsfwDirEntAttr* ExtractAttr(); + + /** + * Sets the attribute object for the directory entry. + * The pre-existing attribute object is deleted (if owned by the entry). + * The directory entry gets ownership of the new attribute object. + * If the aAttr parameter is NULL, + * an attribute object with default values is created. + * @param pointer to the attribute object + */ + IMPORT_C void SetAttrL(CRsfwDirEntAttr* aAttr); + +private: + void ConstructL(const TDesC& aName, CRsfwDirEntAttr* aAttr); + void Construct8L(const TDesC8& aName, CRsfwDirEntAttr* aAttr); + +private: + HBufC* iName; // name + CRsfwDirEntAttr* iAttr; // attributes + TBool iNotOwnAttr; // we do not own the attributes (extracted) + }; + +#endif // CRSFWDIRENT_H + +// End of File