--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/customization/EmbeddedLinkAdapter/inc/EmbeddedLinkAdapter.h Thu Dec 17 08:40:12 2009 +0200
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2002 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 Email Settings Adapter
+*
+*/
+
+
+
+#ifndef __NSMLEMBEDDEDLINKADAPTER_H__
+#define __NSMLEMBEDDEDLINKADAPTER_H__
+
+
+#include "TARMDmAdapter.h"
+#include "EmbeddedLinkApp.h"
+
+const TUint KNSmlEmbeddedLinkAdapterImplUid = 0x1020782C;
+
+// the DDF version must be changed if any changes in DDF structure ( built in DDFStructureL() function )
+_LIT8( KNSmlEmbeddedLinkAdapterDDFVersion, "1.0" );
+
+_LIT8( KNSmlEmbeddedLinkAdapterTextPlain, "text/plain" );
+_LIT8( KNSmlEmbeddedLinkAdapterNodeName, "Apps" );
+_LIT8( KNSmlEmbeddedLinkEmbeddedLinks,"EmbeddedLinks") ;
+_LIT8( KNSmlEmbeddedLinkCustomization, "Customization");
+_LIT8( KNSmlEmbeddedLinkAdapterShutdown,"reboot") ;
+_LIT8( KNSmlEmbeddedLinkAdapterDescription, "The interior object holds all apps objects" );
+_LIT8( KNSmlEmbeddedLinkAdapterDynamicNodeDescription, "Placeholder for one or more Group objects" );
+_LIT8( KNSmlEmbeddedLinkAdapterDynamicNode2Description, "Placeholder for one or more Vendor objects" );
+_LIT8( KNSmlEmbeddedLinkAdapterDynamicNode3Description, "Placeholder for one or more Package objects" );
+_LIT8( KNSmlEmbeddedLinkAdapterPkgDataDescription, "The Data associated with the DM tree application package" );
+_LIT8( KNSmlEmbeddedLinkAdapterPkgNameDescription, "The Name associated with the DM tree application package" );
+_LIT8( KNSmlEmbeddedLinkAdapterPkgVersionDescription, "Version associated with the DM tree application package" );
+_LIT8( KNSmlEmbeddedLinkAdapterPkgMimeTypeDescription, "Mime type associated with the DM tree application package" );
+_LIT8( KNSmlEmbeddedLinkAdapterIsInstalledDescription, "IsInstalled status associated with the DM tree application package" );
+_LIT8( KNSmlEmbeddedLinkAdapterIsRunningDescription, "IsRunning status associated with the DM tree application package" );
+_LIT8( KNSmlEmbeddedLinkAdapterPkgVendorDescription, "name of the vendor associated with the DM tree application package" );
+_LIT8( KNSmlEmbeddedLinkAdapterInstallationDateDescription, "InstallationDate associated with the DM tree application package" );
+_LIT8( KNSmlEmbeddedLinkAdapterInstallationPathDescription, "InstallationPath associated with the DM tree application package" );
+
+_LIT8( KNSmlEmbeddedLinkDynamicNode, "" );
+_LIT8( KNSmlEmbeddedLinkLink, "Links");
+_LIT8( KNSmlEmbeddedLinkURL, "URL");
+_LIT8( KNSmlEmbeddedLinkName, "Name");
+_LIT8( KNSmlEmbeddedLinkUserName, "UserName" );
+_LIT8( KNSmlEmbeddedLinkPassword, "Password" );
+_LIT8( KNSmlEmbeddedLinkConfRef, "ConRef");
+_LIT8( KNSmlEmbeddedLinkID, "ID" );
+_LIT8( KNSmlEmbeddedLinkAppName, "AppName" );
+
+_LIT8( KLinkLeafs8, "URL/Name/UserName/Password/ConRef" );
+_LIT8( KRootLeafs8, "EmbeddedLinks" );
+_LIT8( KAppLeafs8, "Links/ID/AppName" );
+
+// WapAp strings
+_LIT8( KWapApDefault, "" );
+_LIT8( KWapApNull, "null" );
+
+
+class CEmbeddedLinkHandler;
+
+// ------------------------------------------------------------------------------------------------
+// CNSmlDmEmailAdapter
+// ------------------------------------------------------------------------------------------------
+class CNSmlEmbeddedLinkAdapter : public CTARMDmAdapter
+ {
+public:
+ static CNSmlEmbeddedLinkAdapter* NewL(MSmlDmCallback* aDmCallback );
+ static CNSmlEmbeddedLinkAdapter* NewLC(MSmlDmCallback* aDmCallback );
+
+ virtual ~CNSmlEmbeddedLinkAdapter();
+
+ // Implementation of MSmlDmAdapter interface
+ // =========================================
+ void DDFVersionL( CBufBase& aVersion );
+ void DDFStructureL( MSmlDmDDFObject& aDDF );
+
+ void _UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aObject, const TDesC8& aType, TInt aStatusRef );
+ void _UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, TInt aStatusRef );
+ void _DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, TInt aStatusRef );
+ void _FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef );
+ void _FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef );
+ void _ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, TInt aResultsRef, TInt aStatusRef );
+
+ void _AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, TInt aStatusRef );
+ void _ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aArgument, const TDesC8& aType, TInt aStatusRef );
+ void _ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, TInt aStatusRef );
+ void _CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, const TDesC8& aSourceURI, const TDesC8& aSourceLUID, const TDesC8& aType, TInt aStatusRef );
+
+ void StartAtomicL();
+ void CommitAtomicL();
+ void RollbackAtomicL();
+ TBool StreamingSupport( TInt& aItemSize );
+#ifdef __TARM_SYMBIAN_CONVERGENCY
+ virtual void StreamCommittedL( RWriteStream& aStream );
+#else
+ virtual void StreamCommittedL();
+#endif
+ void CompleteOutstandingCmdsL();
+
+ // PolicyCheck, resource name
+ TPtrC8 PolicyRequestResourceL( const TDesC8& aURI );
+
+ TBool LuidMappingInAdapter() { return ETrue ;}
+ TBool AdapterCanChangeACL() { return ETrue ; }
+
+private:
+ void ConstructL( );
+
+ CNSmlEmbeddedLinkAdapter( MSmlDmCallback* aDmCallback );
+
+ enum TNodeId
+ {
+ ENodeUnknown,
+
+ ENodeCustomization,
+ ENodeEmbeddedLinks,
+ ENodeEmbeddedLinksX1,
+ ENodeLinks,
+ ENodeID,
+ ENodeAppName,
+ ENodeLinksX2,
+ ENodeURL,
+ ENodeName,
+ ENodeUserName,
+ ENodePassword,
+ ENodeConRef,
+
+ ENodeLast
+ };
+
+ TNodeId NodeId( const TDesC8& aURI );
+
+ void FillNodeInfoL( MSmlDmDDFObject& aNode,TSmlDmAccessTypes aAccTypes,MSmlDmDDFObject::TOccurence aOccurrence, MSmlDmDDFObject::TScope aScope, MSmlDmDDFObject::TDFFormat aFormat,const TDesC8& aDescription );
+ TInt RecognizeAppTypeL(const TDesC8& aURI, TDes& aAppName);
+
+private:
+
+ MSmlDmCallback* iCallBack;
+
+ /** Temporary buffer for got messages.. */
+ RArray<CEmbeddedLinkApp> iBuffer;
+
+ TInt iLuid;
+ CEmbeddedLinkHandler* iLinkHandler;
+
+};
+
+
+
+
+
+#endif // __CNSmlEmbeddedLinkAdapter_H__