--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/omadm/omadmextensions/adapters/imps/inc/nsmldmimpsadapter.h Thu Dec 17 08:40:12 2009 +0200
@@ -0,0 +1,395 @@
+/*
+* 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: Device Management IMPS Adapter
+*
+*/
+
+
+
+// TaH 3.6.2005 Added constants for parameter lenghts (KNSmlDMMaxNameLen, KNSmlDMMaxAddrLen).
+// TaH 13.6.2005 Added comments for functions.
+// TaH 27.9.2005 Constansts for dynamic node names changed.
+
+#ifndef __NSMLDMIMPSADAPTER_H__
+#define __NSMLDMIMPSADAPTER_H__
+
+// ------------------------------------------------------------------------------------------------
+// Includes
+// ------------------------------------------------------------------------------------------------
+#include <e32base.h>
+#include <smldmadapter.h>
+#include <msvapi.h>
+
+// CONSTANTS
+// Defined in nsmldmimpluids.h file
+const TUint KNSmlDMImpsAdapterImplUid = 0x101F9A2B;
+const TInt KNSmlDMSAPSettings = 200;
+const TInt KNSmlDMMaxNameLen = 50;
+const TInt KNSmlDMMaxAddrLen = 255;
+const TInt KNSmlDMReservingData = 16;
+const TInt KNSmlDMReservingMaxData = 100;
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+// the DDF version must be changed if any changes in DDF structure ( built in DDFStructureL() function )
+_LIT8( KNSmlDMImpsDDFVersion, "1.0" );
+
+_LIT8( KNSmlDMImpsTextPlain, "text/plain" );
+_LIT8( KNSmlDMImpsDynamicNode, "" );
+_LIT8( KNSmlDMImpsNodeName, "IMPS" );
+_LIT8( KNSmlDMImpsAppId, "AppID" );
+_LIT8( KNSmlDMImpsName, "Name" );
+_LIT8( KNSmlDMImpsPrefConRef, "PrefConRef" );
+_LIT8( KNSmlDMImpsPrefAddr, "PrefAddr" );
+_LIT8( KNSmlDMImpsAppAuth, "AppAuth" );
+_LIT8( KNSmlDMImpsAAuthLevel, "AAuthLevel" );
+_LIT8( KNSmlDMImpsAAuthName, "AAuthName" );
+_LIT8( KNSmlDMImpsAAuthSecret, "AAuthSecret" );
+_LIT8( KNSmlDMImpsServices, "Services" );
+_LIT8( KNSmlDMImpsExtNode, "Ext" );
+_LIT8( KNSmlDMImpsPepCompliant, "PEPCompliant" );
+_LIT( KNSmlDMImpsPepCompliant16, "PEPCompliant" );
+
+_LIT8( KNSmlDMImpsDescr, "The interior object holds all IMPS objects" );
+_LIT8( KNSmlDMDynamicNodeDescr, "Placeholder for one or more objects" );
+_LIT8( KNSmlDMImpsAppIDDescr, "Identifier for the application service available at the described SAP" );
+_LIT8( KNSmlDMImpsNameDescr, "Logical and user readable identity of the SAP" );
+_LIT8( KNSmlDMImpsPrefConRefDescr, "Indicator for preferred linkage to connectivity parameters" );
+_LIT8( KNSmlDMImpsPrefAddrDescr, "Addres of the application server" );
+_LIT8( KNSmlDMImpsAppAuthDescr, "Container of authentication information to be used with the SAP" );
+_LIT8( KNSmlDMImpsAAuthLevelDescr, "Tells how the provided authentication credentials are to be applied" );
+_LIT8( KNSmlDMImpsAAuthNameDescr, "Indicator of the ID" );
+_LIT8( KNSmlDMImpsAAuthSecretDescr, "Indicator of the authentication secret" );
+_LIT8( KNSmlDMImpsServicesDescr, "List of supported high-level services" );
+_LIT8( KNSmlDMImpsExtNodeDescr, "Container of vendor specific information" );
+_LIT8( KNSmlDMImpsPepCompliantDescr, "Indicator of the PEP Compliantly" );
+
+_LIT8( KNSmlDMImpsDefaultAppID, "wA" );
+_LIT8( KNSmlDMImpsDefaultAAuthLevel, "APPSRV" );
+_LIT8( KNSmlDMImpsDefaultPEC, "TRUE" );
+_LIT8( KNSmlDMImpsDefaultIM, "FALSE" );
+_LIT8( KNSmlDMImpsDefPEC, "T" );
+_LIT8( KNSmlDMImpsDefIM, "F" );
+_LIT( KNSmlDMImpsNotDefined, "" );
+_LIT8( KNSmlDMImpsNotDefined8, "" );
+_LIT8( KNSmlDMImpsIAPUri, "AP" );
+_LIT8( KNSmlDMImpsServiceIM, "IM" );
+_LIT8( KNSmlDMImpsServicePS, "PS" );
+_LIT8( KNSmlDMImpsServiceGR, "GR" );
+_LIT8( KNSmlDMImpsConnMOIAPUri, "NAP" );
+
+_LIT8( KNSmlDMImpsRtNode, "AppID/Name/PrefConRef/PrefAddr/Services/AppAuth/Ext");
+_LIT8( KNSmlDMAppAuthRtNode, "AAuthLevel/AAuthName/AAuthSecret");
+_LIT8( KNSmlDMRtNode8, "AAId1");
+_LIT( KNSmlDMRtNode, "AAId1");
+
+_LIT8( KNSmlDMImpsSeparator8, "/" );
+_LIT( KNSmlDMImpsSeparator, "/" );
+_LIT8( KNSmlImpsUriDotSlash, "./");
+_LIT8( KNSmlDMImpsSemiColon, ";");
+_LIT( KNSmlDMImpsDefaultName, "default" );
+
+_LIT8( KNSmlDMImpsRootAndDyn, "IMPS/*" );
+_LIT8( KNSmlDMImpsWholeAppAuthUri, "IMPS/*/AppAuth" );
+_LIT8( KNSmlDMImpsWholeAppAuthDynUri, "IMPS/*/AppAuth/*" );
+_LIT8( KNSmlDMImpsWholeExtUri, "IMPS/*/Ext" );
+
+_LIT8( KNSMLDMImpsDynNodeName, "ImpsId" );
+_LIT8( KNSmlImpsLine, "-");
+
+// ------------------------------------------------------------------------------------------------
+// CNSmlDmImpsAdapter
+// ------------------------------------------------------------------------------------------------
+class CNSmlDmImpsAdapter : public CSmlDmAdapter, public MMsvSessionObserver
+ {
+public: // Constructors and destructor
+
+ /**
+ * Two-phased constructors.
+ */
+ static CNSmlDmImpsAdapter* NewL( MSmlDmCallback* aDmCallback );
+ static CNSmlDmImpsAdapter* NewLC( MSmlDmCallback* aDmCallback );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CNSmlDmImpsAdapter();
+
+ /**
+ * Requests DDF Version
+ * @param aVersion, Reference for version
+ */
+ void DDFVersionL( CBufBase& aVersion );
+
+ /**
+ * Requests DDF Structure
+ * @param aDDF, Reference to root node
+ */
+ void DDFStructureL( MSmlDmDDFObject& aDDF );
+
+ /**
+ * Updates leaf object value
+ * @param aURI, The uri of parameter
+ * @param aLUID, The Luid of Uri
+ * @param aObject, The value for parameter
+ * @param aType, Not used at the moment
+ * @param aStatusRef, Status reference of command
+ */
+ void UpdateLeafObjectL( const TDesC8& aURI,
+ const TDesC8& aLUID,
+ const TDesC8& aObject,
+ const TDesC8& aType,
+ TInt aStatusRef );
+
+ /**
+ * Updates leaf object value
+ * Not used at the moment
+ */
+ void UpdateLeafObjectL( const TDesC8& aURI,
+ const TDesC8& aLUID,
+ RWriteStream*& aStream,
+ const TDesC8& aType,
+ TInt aStatusRef );
+
+ /**
+ * Fetches the leaf object size
+ * @param aURI, The uri of parameter
+ * @param aLUID, The Luid of Uri
+ * @param aType, Not used at the moment
+ * @param aResultsRef, Result reference of command
+ * @param aStatusRef, Status reference of command
+ */
+ void FetchLeafObjectSizeL( const TDesC8& aURI,
+ const TDesC8& aLUID,
+ const TDesC8& aType,
+ const TInt aResultsRef,
+ const TInt aStatusRef );
+
+ /**
+ * Fetches the leaf object value
+ * @param aURI, The uri of parameter
+ * @param aLUID, The Luid of Uri
+ * @param aType, Not used at the moment
+ * @param aResultsRef, Result reference of command
+ * @param aStatusRef, Status reference of command
+ */
+ void FetchLeafObjectL( const TDesC8& aURI,
+ const TDesC8& aLUID,
+ const TDesC8& aType,
+ TInt aResultsRef,
+ TInt aStatusRef );
+
+ /**
+ * Deletes the node or leaf
+ * @param aURI, The uri of parameter
+ * @param aLUID, The Luid of Uri
+ * @param aType, Not used at the moment
+ * @param aResultsRef, Result reference of command
+ * @param aStatusRef, Status reference of command
+ */
+ void DeleteObjectL( const TDesC8& aURI,
+ const TDesC8& aLUID,
+ TInt aStatusRef );
+
+
+ /**
+ * Requests the child uri list
+ * @param aURI, The uri of parameter
+ * @param aLUID, The Luid of Uri
+ * @param aPreviousURISegmentList, list of previous Uri Segments
+ * @param aResultsRef, Result reference of command
+ * @param aStatusRef, Status reference of command
+ */
+ void ChildURIListL( const TDesC8& aURI,
+ const TDesC8& aLUID,
+ const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+ TInt aResultsRef,
+ TInt aStatusRef );
+
+ /**
+ * Adds new node
+ * @param aURI, The uri of parameter
+ * @param aParentLUID, The Luid of ParentUri
+ * @param aStatusRef, Status reference of command
+ */
+ void AddNodeObjectL( const TDesC8& aURI,
+ const TDesC8& aParentLUID,
+ TInt aStatusRef );
+
+ /**
+ * Following methods are not used at the moment
+ */
+ void CompleteOutstandingCmdsL();
+ void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aArgument, const TDesC8& aType, const TInt aStatusRef );
+ void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, const 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 );
+ void StreamCommittedL();
+
+protected:
+
+ /**
+ * From MMsvSessionObserver
+ */
+ void HandleSessionEventL( TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3 );
+
+private:
+
+ /**
+ * Constructors.
+ */
+ CNSmlDmImpsAdapter();
+ CNSmlDmImpsAdapter( TAny* aEcomArguments );//new
+
+ /**
+ * Symbian 2nd phase constructor.
+ */
+ void ConstructL( MSmlDmCallback* aDmCallback );
+
+ /**
+ * Change Descriptor to Int
+ * @param aLuid, Descriptor
+ * @return Integer value
+ */
+ TInt DesToInt( const TDesC& aLuid );
+ TInt DesToInt( const TDesC8& aLuid );
+
+ /**
+ * Change Int to descriptor
+ * @param aLuid, Integer value
+ * @return Descriptor
+ */
+ HBufC* IntToDesLC( const TInt aLuid );
+ HBufC8* IntToDes8LC( const TInt aLuid );
+
+ /**
+ * Converts 8 bit descriptor to 16 bit descriptor
+ * @param aSource, source descriptor
+ * @return Destination descriptor
+ */
+ TDesC8& ConvertTo8LC( const TDesC& aSource );
+
+ /**
+ * Converts 16 bit descriptor to 8 bit descriptor
+ * @param aSource, source descriptor
+ * @return Destination descriptor
+ */
+ TDesC16& ConvertTo16LC( const TDesC8& aSource );
+
+ /**
+ * Fill node info
+ * @param aNode, node name
+ * @param aAccTypes, access types
+ * @param aOccurence, occurrence
+ * @param aScope, Dynamic or permanent
+ * @param aFormat, type of leaf
+ * @param aDescription, description of node/leaf
+ */
+ void FillNodeInfoL( MSmlDmDDFObject& aNode,
+ const TSmlDmAccessTypes aAccTypes,
+ MSmlDmDDFObject::TOccurence aOccurrence,
+ MSmlDmDDFObject::TScope aScope,
+ MSmlDmDDFObject::TDFFormat aFormat,
+ const TDesC8& aDescription );
+
+ /**
+ * Find correct SAP from DB and read the data
+ * @param aLUID, SAP uid
+ * @param aSap, place for reading SAP data
+ * @param aStore, variable for rading SAP data
+ * @return error status
+ */
+ TInt GetCorrectSapL( const TDesC8& aLUID,
+ CIMPSSAPSettings* aSap,
+ CIMPSSAPSettingsStore* aStore );
+
+ /**
+ * Reset Sap with empty data
+ * @param aSap, includes the SAP data
+ */
+ void ResetSapL( CIMPSSAPSettings* aSap );
+
+ /**
+ * Update value to SAP data
+ * @param aUri, parameter
+ * @param aObject, parameter value
+ * @param aSap, variable for SAP data
+ * @return error status
+ */
+ CSmlDmAdapter::TError UpdateValueL( const TDesC8& aUri,
+ const TDesC8& aObject,
+ CIMPSSAPSettings* aSap );
+
+ /**
+ * Update PEP value to SAP data
+ * @param aUri, parameter
+ * @param aObject, parameter value
+ * @param aLUID, SAP uid
+ * @param aSap, variable for reading SAP data
+ * @param aStore, used for rading SAP data
+ * @return error status
+ */
+ CSmlDmAdapter::TError UpdatePEPValueL( const TDesC8& aURI,
+ const TDesC8& aObject,
+ const TDesC8& aLUID,
+ CIMPSSAPSettings* aSap,
+ CIMPSSAPSettingsStore* aStore );
+
+ /**
+ * Delete value from SAP data
+ * @param aUri, parameter
+ * @param aSap, variable for reading SAP data
+ * @return error status
+ */
+ CSmlDmAdapter::TError DeleteValueL( const TDesC8& aUri,
+ CIMPSSAPSettings* aSap );
+
+ /**
+ * Fetch object data
+ * @param aUri, parameter
+ * @param aLUID, SAP uid
+ * @param aObject, variable for returning parameter data
+ * @return error status
+ */
+ CSmlDmAdapter::TError FetchObjectL( const TDesC8& aUri,
+ const TDesC8& aLUID,
+ CBufBase& aObject );
+
+ /**
+ * Get Connection Reference
+ * @return accesspoint reference
+ */
+ const TDesC8& GetConRef() ;
+
+
+private: // Data
+ MSmlDmCallback* iCallBack;
+ /**
+ * Boolean to check FeatMgr Initialization
+ */
+ TBool iFeatMgrInitialized;
+ };
+
+#endif // __NSMLDMIMPSADAPTER_H__