ncdengine/provider/protocol/inc/ncdrequestconfigurationdata.h
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/protocol/inc/ncdrequestconfigurationdata.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,207 @@
+/*
+* Copyright (c) 2006 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:   CNcdRequestConfiguration declaration
+*
+*/
+
+
+#ifndef C_NCD_REQUEST_CONFIGURATION_DATA_HH
+#define C_NCD_REQUEST_CONFIGURATION_DATA_HH
+
+#include <e32std.h>
+#include <e32base.h>
+#include "ncdprotocoltypes.h"
+
+class MNcdConfigurationProtocolCookie;
+class MNcdConfigurationProtocolDetail;
+
+
+/**
+ * Software-element for client-elements
+ */
+class CNcdRequestConfigurationSoftware : public CBase
+    {
+public:
+
+    static CNcdRequestConfigurationSoftware* NewLC();
+    ~CNcdRequestConfigurationSoftware();
+
+public:
+
+    void SetSoftwareTypeL( const TDesC& aType );
+    void SetSoftwareVersionL( const TDesC& aVersion );
+    void SetSoftwareIdsL( const TDesC& aUid, const TDesC& aId, 
+        const TDesC8& aSsid );
+    void SetSoftwareLanguageL( const TDesC& aLanguage );    
+    void AddSoftwareCapabilityL( const TDesC& aCapability );
+    void AddSoftwareDetailsL( MNcdConfigurationProtocolDetail* aDetail);
+    
+    
+    TXmlEngElement GetSoftwareConfigurationElementL(
+        RXmlEngDocument& aDocument, const TXmlEngString& aPrefix );
+    
+private:
+
+    // client software configuration
+    TNcdConfigurationSoftware iSoftware;
+    
+    
+    };
+    
+
+/**
+ * Hardware-element for client-elements
+ */
+class CNcdRequestConfigurationHardware : public CBase
+    {
+public:
+
+    static CNcdRequestConfigurationHardware* NewL();
+    ~CNcdRequestConfigurationHardware();
+
+public:
+
+    void SetHardwareUaProfileUriL( const TDesC& aUaProfileUri );
+    void SetHardwareIdentificationL( const TDesC& aIdentification );
+    void SetHardwareManufacturerL( const TDesC& aManufacturer );
+    void SetHardwareModelL( const TDesC& aModel );
+    void SetHardwareLanguageL( const TDesC& aLanguage );
+    void SetHardwarePlatformL( const TDesC& aPlatform );
+    void SetHardwareFirmwareL( const TDesC& aFirmwareVersion );
+    void AddHardwareDisplayL( TInt aColors, TInt aHeight, TInt aWidth );
+    void AddHardwareDetailsL( MNcdConfigurationProtocolDetail* aDetail );
+    
+    TXmlEngElement GetHardwareConfigurationElementL(
+        RXmlEngDocument& aDocument,
+        const TXmlEngString& aPrefix );
+        
+private:
+
+    // client hardware configuration
+    TNcdConfigurationHardware iHardware;
+        
+    };
+    
+
+/**
+ * Client-element for configuration requests
+ */
+class CNcdRequestConfigurationClient : public CBase
+    {
+public:
+    static CNcdRequestConfigurationClient* NewLC();
+    ~CNcdRequestConfigurationClient();
+    
+public:
+
+    void AddSoftwareL( CNcdRequestConfigurationSoftware* aSoftware );
+    
+    TInt SoftwareCount() const;
+    CNcdRequestConfigurationSoftware& Software( TInt aIndex );
+       
+       
+    CNcdRequestConfigurationHardware& Hardware();
+     
+protected:    
+
+    CNcdRequestConfigurationClient();
+    void ConstructL();    
+    
+private:
+
+    RPointerArray<CNcdRequestConfigurationSoftware> iSoftwares;
+    CNcdRequestConfigurationHardware* iHardware;
+        
+    };
+
+
+
+class CNcdRequestConfigurationData : public CBase
+    {
+public:
+
+    static CNcdRequestConfigurationData* NewLC();
+    ~CNcdRequestConfigurationData();    
+
+private:
+    
+    CNcdRequestConfigurationData();
+
+public:
+    void SetNamespacePrefixL( const TDesC8& aPrefix );
+    
+    void AddCookieL( MNcdConfigurationProtocolCookie* aCookie ); 
+
+    void AddQueryResponseL(
+        TNcdConfigurationQueryResponse aQueryResponse);
+
+    /* Network configuration data */    
+    void SetNetworkMccL( const TDesC& aMcc, const TDesC& aCurrentMcc );
+    void SetNetworkMncL( const TDesC& aMnc, const TDesC& aCurrentMnc );
+    void SetNetworkGidL( const TDesC& aGid1, const TDesC& aGid2 );
+    void SetNetworkSmscL( const TDesC& aSmsc );
+    void SetNetworkImsiL( const TDesC& aImsi );
+    void SetNetworkMsisdnL( const TDesC& aMsisdn );
+    void SetNetworkCellIdL( const TDesC& aCellId );
+    void SetNetworkProviderL( const TDesC& aServiceProviderName );
+    void SetNetworkOperatorL( const TDesC& aOperatorName );
+    void AddNetworkDetailsL( MNcdConfigurationProtocolDetail* aDetail );
+    
+    /* Software configuration data */    
+    
+    /**
+     * Adds a new client-info. Ownership is transferred
+     */     
+    void AddClientL( CNcdRequestConfigurationClient* aClient );
+    
+    // request generation methods,
+    // used by request generator    
+    TXmlEngElement GetConfigurationElementL(RXmlEngDocument& aDocument);
+    TXmlEngElement GetCookiesElementL(RXmlEngDocument& aDocument);
+    TXmlEngElement GetQueryResponseElementL(RXmlEngDocument& aDocument);
+    TXmlEngElement GetNetworkConfigurationElementL(RXmlEngDocument& aDocument);
+    
+    /**
+     * Number of client-elements
+     */
+    TInt ClientConfigurationCount() const;
+    
+    /**
+     * Returns the client element for the given index
+     */
+    TXmlEngElement GetClientConfigurationElementL( RXmlEngDocument& aDocument,
+        TInt aIndex );
+  
+
+public:
+    // network configuration
+    TNcdConfigurationNetwork iNetwork;
+
+    TXmlEngString iQueryResponseId;
+
+private:
+    TXmlEngString iPrefix;
+    
+    TBool iNetworkConfigurationEnabled;
+    TBool iSoftwareConfigurationEnabled;
+    TBool iHardwareConfigurationEnabled;
+
+    RPointerArray<CNcdRequestConfigurationClient> iClients;
+    RPointerArray<MNcdConfigurationProtocolCookie> iCookies;
+    RArray<TNcdConfigurationQueryResponse> iQueryResponses;
+    
+    };
+           
+    
+#endif //C_NCD_REQUEST_CONFIGURATION_DATA_HH