diff -r 000000000000 -r ba25891c3a9e ncdengine/provider/protocol/inc/ncdrequestconfigurationdata.h --- /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 +#include +#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 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 iClients; + RPointerArray iCookies; + RArray iQueryResponses; + + }; + + +#endif //C_NCD_REQUEST_CONFIGURATION_DATA_HH