syncmlfw/dm/provisioningadapter/inc/NSmlDmProvisioningAdapter.h
changeset 0 b497e44ab2fc
child 19 696f5dd11939
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/dm/provisioningadapter/inc/NSmlDmProvisioningAdapter.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,171 @@
+/*
+* 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:  DM Settings Provisioning Adapter
+*
+*/
+
+
+#ifndef NSMLDMPROVISIONINGADAPTER_H
+#define NSMLDMPROVISIONINGADAPTER_H
+
+// INCLUDES
+#include <CWPAdapter.h>
+#include <MWPContextExtension.h>
+#include <MWPVisitor.h>
+#include <SyncMLClient.h>
+#include <SyncMLClientDM.h>
+#include <nsmldmauthinfo.h>
+#include <nsmlconstants.h>
+#include <nsmldmconstants.h>
+
+#include "NSmlDmProvisioningAdapterUIDs.h"
+
+// CONSTANTS
+
+// DATA TYPES
+
+// FORWARD DECLARATIONS
+class CDesC16Array;
+
+_LIT8( KNSmlTrueVal, "1" );
+_LIT8( KNSmlFalseVal, "0" );
+
+_LIT( KNSmlDMProvisioningDefName, "Profile" );
+
+_LIT( KNSmlDMProvisioningCharacteristic, "CHARACTERISTIC" );
+_LIT( KNSmlDMProvisioningNapdef, "NAPDEF" );
+_LIT( KNSmlDMProvisioningApplication, "APPLICATION" );
+_LIT( KNSmlDMProvisioningDMAppIdVal, "w7" );
+_LIT( KNSmlDMProvisioningINIT, "INIT" );
+
+_LIT( KNSmlDMProvisioningHTTP, "http://" );
+_LIT( KNSmlDMProvisioningHTTPS, "https://" );
+
+_LIT( KNSmlDMProvisioningServerAuth, "APPSRV" );
+_LIT( KNSmlDMProvisioningClientAuth, "CLIENT" );
+
+_LIT( KNSmlDMProvisioningHTTPBasic, "HTTP-BASIC" );
+_LIT( KNSmlDMProvisioningHTTPDigest, "HTTP-DIGEST" );
+
+_LIT( KNSmlDmPovisioningDirAndResource,	"z:NSmlDmProvisioningAdapter.rsc" );
+
+_LIT8( KNSmlDMProvisioningNoVal, "" );
+_LIT( KNSmlDMProvisioningNoVal16, "" );
+_LIT( KNSmlDmDefaultPort, "80");
+_LIT8( KNSmlDmStaticAlertMessagePart,	"000000000000000000000" ); //21 characters
+const TUint8 KNSmlDMColon = ':';
+const TUint8 KNSmlDMUriSeparator = '/';
+
+// CLASS DECLARATION
+class CNSmlDmProfileElement : public CBase
+	{
+	public:
+		static CNSmlDmProfileElement* NewL();
+		~CNSmlDmProfileElement();
+		
+		HBufC *iServerNonce;
+		CWPCharacteristic *iVisitParameter;
+		TPckgBuf<TInt> iProfileId;
+		HBufC *iHostAddress;
+		HBufC *iPort;
+		CNSmlDMAuthInfo iAuthInfo;
+		HBufC8 *iHTTPUserName;
+		HBufC8 *iHTTPPassword;
+		
+		HBufC* iDisplayName;
+		TSmlServerAlertedAction iServerAlertedAction;
+		TSmlProtocolVersion iProtocolVersion;
+		HBufC8* iServerId;
+		HBufC8* iUsername;
+		HBufC8* iPassword;
+		HBufC8* iServerPassword;
+	};
+
+class CNSmlDmProvisioningAdapter : public CWPAdapter , public MWPContextExtension
+	{
+	public:
+
+		static CNSmlDmProvisioningAdapter* NewL();
+		~CNSmlDmProvisioningAdapter();
+		
+		//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 );
+
+		CNSmlDmProvisioningAdapter();
+		void ConstructL();
+		TInt GetDefaultIAPL();
+		void GetTitleL();
+		TInt CombineURILC( const TDesC& aAddr, const TDesC& aPort, HBufC*& aRealURI );
+		
+		TDesC8& ConvertTo8LC( const TDesC& aSource );
+		TDesC8& ConvertTo8L( const TDesC& aSource );
+
+	private:
+		TInt Reserved_1();
+		TInt Reserved_2();
+		
+	private:  // Data
+		enum TDmProvisioningState 
+			{
+			EStateNull = 0,
+			EStateDmSettings,
+			EStateApplication,
+			EStateNotInterested
+			};
+
+		enum TDmProvisioningAuthLevel 
+			{
+			ENone = 0,
+			EServer,
+			EClient,
+			EHttp
+			};
+
+		enum TDmAuthenticationType
+			{
+			ENoAuth,
+			EBasic,
+			EMD5
+			};
+
+		CNSmlDmProvisioningAdapter::TDmProvisioningState iState;
+		CNSmlDmProvisioningAdapter::TDmProvisioningAuthLevel iAuthLevel;
+
+		RPointerArray<CNSmlDmProfileElement> iProfiles;
+		HBufC *iTitle;
+		RSyncMLSession iSession;
+		TUint iInitSession;
+		TUint iAuthSecretLimitIndicator;
+	};
+
+#endif	// NSMLDMPROVISIONINGADAPTER_H
+            
+// End of File