syncmlfw/ds/provisioningadapter/inc/NSmlDsProvisioningAdapter.h
changeset 0 b497e44ab2fc
child 9 57a65a3a658c
child 60 eb6690d0d439
equal deleted inserted replaced
-1:000000000000 0:b497e44ab2fc
       
     1 /*
       
     2 * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  DS Settings Provisioning Adapter
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef NSMLDSPROVISIONINGADAPTER_H
       
    20 #define NSMLDSPROVISIONINGADAPTER_H
       
    21 
       
    22 // INCLUDES
       
    23 #include <CWPAdapter.h>
       
    24 #include <MWPContextExtension.h>
       
    25 #include <MWPVisitor.h>
       
    26 #include <SyncMLClient.h>
       
    27 #include <SyncMLClientDS.h>
       
    28 #include <nsmlconstants.h>
       
    29 #include "NSmlDsProvisioningAdapterUIDs.h"
       
    30 
       
    31 // CONSTANTS
       
    32 
       
    33 // DATA TYPES
       
    34 
       
    35 // FORWARD DECLARATIONS
       
    36 class CDesC16Array;
       
    37 
       
    38 _LIT8( KNSmlTrueVal, "1" );
       
    39 _LIT8( KNSmlFalseVal, "0" );
       
    40 
       
    41 _LIT( KNSmlDsProvisioningDefName, "Profile" );
       
    42 
       
    43 _LIT( KNSmlDsProvisioningCharacteristic, "CHARACTERISTIC" );
       
    44 _LIT( KNSmlDsProvisioningNapdef, "NAPDEF" );
       
    45 _LIT( KNSmlDsProvisioningApplication, "APPLICATION" );
       
    46 _LIT( KNSmlDsProvisioningDMAppIdVal, "w5" );
       
    47 
       
    48 _LIT( KNSmlDsProvisioningHTTP, "http://" );
       
    49 _LIT( KNSmlDsProvisioningHTTPS, "https://" );
       
    50 
       
    51 _LIT( KNSmlDSProvisioningHTTPBasic, "HTTP-BASIC" );
       
    52 _LIT( KNSmlDSProvisioningHTTPDigest, "HTTP-DIGEST" );
       
    53 
       
    54 _LIT( KNSmlDsPovisioningDirAndResource,	"z:NSmlDsProvisioningAdapter.rsc" );
       
    55 
       
    56 _LIT( KNSmlDsDefaultPort, "80");
       
    57 _LIT(KNSmlVersion12, "1.2");
       
    58 _LIT(KNSmlVersion112, "1.1.2");
       
    59 _LIT(KNSmlVersion11, "1.1");
       
    60 
       
    61 const TUint8 KNSmlDMColon = ':';
       
    62 const TUint8 KNSmlDMUriSeparator = '/';
       
    63 
       
    64 // CLASS DECLARATION
       
    65 class CNSmlDataProviderElement : public CBase
       
    66 	{
       
    67 	public:
       
    68 		static CNSmlDataProviderElement* NewL();
       
    69 		~CNSmlDataProviderElement();
       
    70 	
       
    71 		TUint32 iUid;
       
    72 		HBufC *iRemoteDBUri;
       
    73 		HBufC *iLocalDBUri;
       
    74 	};
       
    75 
       
    76 class CNSmlDsProfileElement : public CBase
       
    77 	{
       
    78 	public:
       
    79 		static CNSmlDsProfileElement* NewL();
       
    80 		~CNSmlDsProfileElement();
       
    81 	
       
    82 		RPointerArray<CNSmlDataProviderElement> iDataProvElement;
       
    83 		CWPCharacteristic *iVisitParameter;
       
    84 		TPckgBuf<TInt> iProfileId;
       
    85 		HBufC *iHostAddress;
       
    86 		HBufC *iPort;
       
    87 		HBufC8 *iHTTPUserName;
       
    88 		HBufC8 *iHTTPPassword;
       
    89 		
       
    90 		HBufC* iDisplayName;
       
    91 		TSmlServerAlertedAction iServerAlertedAction;
       
    92 		TSmlProtocolVersion iProtocolVersion;
       
    93 		HBufC8* iServerId;
       
    94 		HBufC8* iUsername;
       
    95 		HBufC8* iPassword;
       
    96 	};
       
    97 
       
    98 class CNSmlDsProvisioningAdapter : public CWPAdapter, public MWPContextExtension
       
    99 	{
       
   100 	public:  // Constructors and destructor
       
   101 
       
   102 		static CNSmlDsProvisioningAdapter* NewL();
       
   103 		~CNSmlDsProvisioningAdapter();
       
   104 		
       
   105 		//from CWPAdapter
       
   106 		TInt ItemCount() const;
       
   107 		const TDesC16& SummaryTitle( TInt aIndex ) const;
       
   108 		const TDesC16& SummaryText( TInt aIndex ) const;
       
   109 		void SaveL( TInt aItem );
       
   110 		TBool CanSetAsDefault( TInt aItem ) const;
       
   111 		void SetAsDefaultL( TInt aItem );
       
   112 		TInt ContextExtension( MWPContextExtension*& );
       
   113 		
       
   114 		//from MWPContextExtension
       
   115 		const TDesC8& SaveDataL( TInt aIndex ) const;
       
   116 		void DeleteL( const TDesC8& aSaveData );
       
   117         TUint32 Uid() const;
       
   118 
       
   119 	private:
       
   120 		void VisitL( CWPCharacteristic& aElement );
       
   121 		void VisitL( CWPParameter& aElement );
       
   122 		void VisitLinkL( CWPCharacteristic& aCharacteristic );
       
   123 		TInt DetailsL( TInt aItem, MWPPairVisitor& aVisitor );
       
   124 
       
   125 		CNSmlDsProvisioningAdapter();
       
   126 		void ConstructL();
       
   127 		TInt GetDefaultIAPL();
       
   128 		TInt CombineURILC( const TDesC& aAddr, const TDesC& aPort, HBufC*& aRealURI );
       
   129 		void StoreAttributesL( const TDesC& aType );
       
   130 		void GetTitleL();
       
   131 		TDesC8& ConvertTo8LC( const TDesC& aSource );
       
   132 		TDesC8& ConvertTo8L( const TDesC& aSource );
       
   133 
       
   134 	private:
       
   135 		
       
   136 		TInt Reserved_1();
       
   137 		TInt Reserved_2();
       
   138 		
       
   139 	private:  // Data
       
   140 
       
   141 		enum TDsProvisioningState 
       
   142 			{
       
   143 			EStateNull = 0,
       
   144 			EStateDsSettings,
       
   145 			EStateApplication,
       
   146 			EStateResource,
       
   147 			EStateAppAuth,
       
   148 			EStateNotInterested
       
   149 			};
       
   150 
       
   151 		enum TDsProvisioningAuthLevel 
       
   152 			{
       
   153 			ENone = 0,
       
   154 			EServer,
       
   155 			EClient,
       
   156 			EHttp
       
   157 			};
       
   158 
       
   159 		enum TDmAuthenticationType
       
   160 			{
       
   161 			ENoAuth,
       
   162 			EBasic,
       
   163 			EMD5
       
   164 			};
       
   165 
       
   166 		CNSmlDsProvisioningAdapter::TDsProvisioningState iState;
       
   167 		CNSmlDsProvisioningAdapter::TDsProvisioningAuthLevel iAuthLevel;
       
   168 		
       
   169 		RPointerArray<CNSmlDsProfileElement> iProfiles;
       
   170 		HBufC *iTitle;
       
   171 		RSyncMLSession iSession;
       
   172         //To NAPID Internet indicator
       
   173         TBool iToNapIDInternetIndicator;
       
   174 	};
       
   175 
       
   176 #endif	// NSMLDSPROVISIONINGADAPTER_H
       
   177             
       
   178 // End of File