diff -r 000000000000 -r b497e44ab2fc omaprovisioning/provisioning/ProvisioningEngine/Inc/CWPRoot.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omaprovisioning/provisioning/ProvisioningEngine/Inc/CWPRoot.h Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,141 @@ +/* +* 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: Root for WAP Provisioning document. +* +*/ + + +#ifndef CWPROOT_H +#define CWPROOT_H + + +// INCLUDES +#include +#include "MWPBuilder.h" +#include "MWPVisitor.h" + +// FORWARD DECLARATIONS +class CWPCharacteristic; +class CDesC16Array; + +// CLASS DEFINITION + +/** +* Root for the contents of a WAP Provisioning document. +* +* @lib ProvisioningEngine +* @since 2.0 +*/ +class CWPRoot : public CBase, public MWPBuilder, private MWPVisitor + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CWPRoot* NewL(); + + /** + * Two-phased constructor. + */ + static CWPRoot* NewLC(); + + /** + * Destructor. + */ + ~CWPRoot(); + + public: // New functions + + /** + * Accepts a visitor for the contents of the document. + * @param aVisitor Visitor is called for each element in the root of the document. + */ + void AcceptL(MWPVisitor& aVisitor); + + /** + * Loads a WAP Provisioning document from a stream. + * @param aStream Stream to read the document from. + */ + void InternalizeL(RReadStream& aStream); + + /** + * Stores a WAP Provisioning document in a stream. + * @param aStream Stream to write the document to. + */ + void ExternalizeL(RWriteStream& aStream) const; + + /** + * Insert an element to the root of the document. + * @param aElement Element to insert. The ownership is transferred to CWPRoot. + */ + void InsertL( CWPCharacteristic* aElement ); + + /** + * Creates links from logical proxy ids to logical + * proxies and access point ids to access points. + * Call this before walking through the document data. + */ + void CreateLinksL(); + + public: // From MWPBuilder + + void StartCharacteristicL( TInt aType ); + void StartCharacteristicL( const TDesC& aName ); + void EndCharacteristicL(); + void ParameterL( TInt aID, const TDesC& aValue ); + void ParameterL( const TDesC& aName, const TDesC& aValue ); + + private: // From MWPVisitor + + void VisitL(CWPCharacteristic& aCharacteristic); + void VisitL(CWPParameter& aParameter); + void VisitLinkL(CWPCharacteristic& aCharacteristic ); + + private: + + /** + * C++ default constructor. + */ + CWPRoot(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Data + /// Characteristics in the root of the document. Owns. + CArrayPtr* iContents; + + /// Stack for MWPBuilder + RPointerArray iStack; + + /// Needed proxy IDs. Owns. + CDesC16Array* iNeededIDs; + + /// Proxy IDs. Owns. + CDesC16Array* iProviderIDs; + + /// Logical proxies. Owns. + RPointerArray iProviders; + + /// Characteristics needing proxy. + RPointerArray iNeeders; + + /// Stack + CWPCharacteristic* iCharStack; + }; + +#endif // CWPROOT_H