syncmlfw/ds/provisioningadapter/inc/NSmlDsProvisioningAdapter.h
changeset 0 b497e44ab2fc
child 9 57a65a3a658c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/ds/provisioningadapter/inc/NSmlDsProvisioningAdapter.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,178 @@
+/*
+* 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 "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:  DS Settings Provisioning Adapter
+*
+*/
+
+
+#ifndef NSMLDSPROVISIONINGADAPTER_H
+#define NSMLDSPROVISIONINGADAPTER_H
+
+// INCLUDES
+#include <CWPAdapter.h>
+#include <MWPContextExtension.h>
+#include <MWPVisitor.h>
+#include <SyncMLClient.h>
+#include <SyncMLClientDS.h>
+#include <nsmlconstants.h>
+#include "NSmlDsProvisioningAdapterUIDs.h"
+
+// CONSTANTS
+
+// DATA TYPES
+
+// FORWARD DECLARATIONS
+class CDesC16Array;
+
+_LIT8( KNSmlTrueVal, "1" );
+_LIT8( KNSmlFalseVal, "0" );
+
+_LIT( KNSmlDsProvisioningDefName, "Profile" );
+
+_LIT( KNSmlDsProvisioningCharacteristic, "CHARACTERISTIC" );
+_LIT( KNSmlDsProvisioningNapdef, "NAPDEF" );
+_LIT( KNSmlDsProvisioningApplication, "APPLICATION" );
+_LIT( KNSmlDsProvisioningDMAppIdVal, "w5" );
+
+_LIT( KNSmlDsProvisioningHTTP, "http://" );
+_LIT( KNSmlDsProvisioningHTTPS, "https://" );
+
+_LIT( KNSmlDSProvisioningHTTPBasic, "HTTP-BASIC" );
+_LIT( KNSmlDSProvisioningHTTPDigest, "HTTP-DIGEST" );
+
+_LIT( KNSmlDsPovisioningDirAndResource,	"z:NSmlDsProvisioningAdapter.rsc" );
+
+_LIT( KNSmlDsDefaultPort, "80");
+_LIT(KNSmlVersion12, "1.2");
+_LIT(KNSmlVersion112, "1.1.2");
+_LIT(KNSmlVersion11, "1.1");
+
+const TUint8 KNSmlDMColon = ':';
+const TUint8 KNSmlDMUriSeparator = '/';
+
+// CLASS DECLARATION
+class CNSmlDataProviderElement : public CBase
+	{
+	public:
+		static CNSmlDataProviderElement* NewL();
+		~CNSmlDataProviderElement();
+	
+		TUint32 iUid;
+		HBufC *iRemoteDBUri;
+		HBufC *iLocalDBUri;
+	};
+
+class CNSmlDsProfileElement : public CBase
+	{
+	public:
+		static CNSmlDsProfileElement* NewL();
+		~CNSmlDsProfileElement();
+	
+		RPointerArray<CNSmlDataProviderElement> iDataProvElement;
+		CWPCharacteristic *iVisitParameter;
+		TPckgBuf<TInt> iProfileId;
+		HBufC *iHostAddress;
+		HBufC *iPort;
+		HBufC8 *iHTTPUserName;
+		HBufC8 *iHTTPPassword;
+		
+		HBufC* iDisplayName;
+		TSmlServerAlertedAction iServerAlertedAction;
+		TSmlProtocolVersion iProtocolVersion;
+		HBufC8* iServerId;
+		HBufC8* iUsername;
+		HBufC8* iPassword;
+	};
+
+class CNSmlDsProvisioningAdapter : public CWPAdapter, public MWPContextExtension
+	{
+	public:  // Constructors and destructor
+
+		static CNSmlDsProvisioningAdapter* NewL();
+		~CNSmlDsProvisioningAdapter();
+		
+		//from CWPAdapter
+		TInt ItemCount() const;
+		const TDesC16& SummaryTitle( TInt aIndex ) const;
+		const TDesC16& SummaryText( TInt aIndex ) const;
+		void SaveL( TInt aItem );
+		TBool CanSetAsDefault( TInt aItem ) const;
+		void SetAsDefaultL( TInt aItem );
+		TInt ContextExtension( MWPContextExtension*& );
+		
+		//from MWPContextExtension
+		const TDesC8& SaveDataL( TInt aIndex ) const;
+		void DeleteL( const TDesC8& aSaveData );
+        TUint32 Uid() const;
+
+	private:
+		void VisitL( CWPCharacteristic& aElement );
+		void VisitL( CWPParameter& aElement );
+		void VisitLinkL( CWPCharacteristic& aCharacteristic );
+		TInt DetailsL( TInt aItem, MWPPairVisitor& aVisitor );
+
+		CNSmlDsProvisioningAdapter();
+		void ConstructL();
+		TInt GetDefaultIAPL();
+		TInt CombineURILC( const TDesC& aAddr, const TDesC& aPort, HBufC*& aRealURI );
+		void StoreAttributesL( const TDesC& aType );
+		void GetTitleL();
+		TDesC8& ConvertTo8LC( const TDesC& aSource );
+		TDesC8& ConvertTo8L( const TDesC& aSource );
+
+	private:
+		
+		TInt Reserved_1();
+		TInt Reserved_2();
+		
+	private:  // Data
+
+		enum TDsProvisioningState 
+			{
+			EStateNull = 0,
+			EStateDsSettings,
+			EStateApplication,
+			EStateResource,
+			EStateAppAuth,
+			EStateNotInterested
+			};
+
+		enum TDsProvisioningAuthLevel 
+			{
+			ENone = 0,
+			EServer,
+			EClient,
+			EHttp
+			};
+
+		enum TDmAuthenticationType
+			{
+			ENoAuth,
+			EBasic,
+			EMD5
+			};
+
+		CNSmlDsProvisioningAdapter::TDsProvisioningState iState;
+		CNSmlDsProvisioningAdapter::TDsProvisioningAuthLevel iAuthLevel;
+		
+		RPointerArray<CNSmlDsProfileElement> iProfiles;
+		HBufC *iTitle;
+		RSyncMLSession iSession;
+        //To NAPID Internet indicator
+        TBool iToNapIDInternetIndicator;
+	};
+
+#endif	// NSMLDSPROVISIONINGADAPTER_H
+            
+// End of File