diff -r 88ee4cf65e19 -r 1aa8c82cb4cb rsfw_plat/rsfw_access_protocol_plugin_api/inc/rsfwmountentry.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rsfw_plat/rsfw_access_protocol_plugin_api/inc/rsfwmountentry.h Wed Sep 01 12:15:08 2010 +0100 @@ -0,0 +1,150 @@ +/* +* 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: Mount configuration entry +* +*/ + + +#ifndef CRSFWMOUNTENTRY_H +#define CRSFWMOUNTENTRY_H + +// INCLUDES +#include +#include +#include + + +// Drive entry constants +// these come from UI specification +const TInt KMaxMountNameLength = 20; +const TInt KMaxMountUriLength = 200; +const TInt KMaxMountUserNameLength = 50; +const TInt KMaxMountPasswordLength = 50; +const TInt KMaxMountAuxDataLength = 64; +const TInt KMaxMountConfItemLength = 200; // Longest possible conf item value. +const TInt KMaxMountConfLength = 512; // Buffer for sending all drive + // configuration values +const TInt KIndexAsStringLength = 4; // how wide string for index + + +// CLASS DECLARATION +/** +* Remote drive (configuration) entry +* +* Drive configuration entry consists of the following values: +* - Index of the entry. Optional. +* - Friendly name. Mandatory. +* - Drive letter. Optional. +* - Drive URL. Mandatory. +* - User name. Optional. +* - Password. Optional +* - Internet Access point. Optional. +* +* Maximum lengths for the strings: +* - Friendly name 20 characters +* - Drive URL 200 characters +* - User name 50 characters +* - Password 50 characters +* Setter functions leave with KErrArgument, if longer values are attempted +* +* Drive Letter must be between J: and Y: +* (see also RFs::DriveList() documentation)¨ +* +* Drive Url must begin with a valid scheme (e.g. https:// or upnp://) +* +* @lib mountstore.dll +* @since Series 60 3.1 +*/ +class CRsfwMountEntry: public CBase + { +public: // Constructors and destructor + /** + * Two-phased constructor. + */ + IMPORT_C static CRsfwMountEntry* NewL(); + + /** + * Two-phased constructor + */ + IMPORT_C static CRsfwMountEntry* NewLC(); + + /** + * Destructor. + */ + IMPORT_C virtual ~CRsfwMountEntry(); + + /** + * Sets an item value + * @param aIndex item index + * @param aValue string value + * @leave KErrArgument, incorrect index or value + */ + IMPORT_C void SetItemL(TInt aIndex, const TDesC8& aValue); + + /** + * Sets an item value + * @param aIndex item index + * @param aValue string value + * @leave KErrArgument, incorrect index or value + */ + IMPORT_C void SetItemL(TInt aIndex, const TDesC& aValue); + + /** + * Sets all item values + * @param aIndex index (only used for positioning the entry - not stored) + * @param aName name + * @param aDriveLetter drive letter + * @param aUri URI + * @param aUserName user name + * @param aPassword password + * @param aIap IAP name + * @leave KErrArgument, one or more parameters incorrect + */ + IMPORT_C void SetEntryL(TInt aIndex, + const TDesC& aName, + TChar aDriveLetter, + const TDesC& aUrl, + const TDesC& aUserName, + const TDesC& aPassword, + const TDesC& aIap); + + /** + * Returns an item value + * An empty value may be an empty string or NULL + */ + IMPORT_C const HBufC* Item(TInt aIndex) const; + + /** + * Clear the entry - the items are set to NULL + */ + IMPORT_C void Clear(); + + /** + * Clone the entry - the items are are copied to the newly created entry + * @return cloned entry + */ + IMPORT_C CRsfwMountEntry* CloneL() const; + +private: + CRsfwMountEntry(); + void ConstructL(); + +private: // Data + RFs iFs; + HBufC* iMountEntryItems[EMountEntryItemCount]; + }; + +#endif // CRSFWMOUNTENTRY_H + +// End of File