rsfw_plat/rsfw_access_protocol_plugin_api/inc/rsfwmountentry.h
branchRCL_3
changeset 16 1aa8c82cb4cb
parent 0 3ad9d5175a89
--- /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 <e32base.h>
+#include <f32file.h>
+#include <rsfwmountentryitem.h>
+
+
+// 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