--- /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 <e32base.h>
+#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<CWPCharacteristic>* iContents;
+
+ /// Stack for MWPBuilder
+ RPointerArray<CWPCharacteristic> iStack;
+
+ /// Needed proxy IDs. Owns.
+ CDesC16Array* iNeededIDs;
+
+ /// Proxy IDs. Owns.
+ CDesC16Array* iProviderIDs;
+
+ /// Logical proxies. Owns.
+ RPointerArray<CWPCharacteristic> iProviders;
+
+ /// Characteristics needing proxy.
+ RPointerArray<CWPCharacteristic> iNeeders;
+
+ /// Stack
+ CWPCharacteristic* iCharStack;
+ };
+
+#endif // CWPROOT_H