pnpmobileservices/pnpms/PnP/NHwrParser/NHeadWrapperParser.h
changeset 0 3ce708148e4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pnpmobileservices/pnpms/PnP/NHwrParser/NHeadWrapperParser.h	Thu Dec 17 08:40:12 2009 +0200
@@ -0,0 +1,122 @@
+/*
+* Copyright (c) 2004-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: Implementation of PnPMS components
+*
+*/
+
+
+#ifndef NHEADWRAPPER_PARSER_H
+#define NHEADWRAPPER_PARSER_H
+
+// INCLUDES
+#include <e32base.h>
+#include "HttpProvStates.h"
+
+class CHttpProvHeaders;
+class CHttpProvContentType;
+
+enum TProvisioningActivation
+    {
+    EProvisioningActivationUser = 0,
+    EProvisioningActivationOn,
+    EProvisioningActivationOff
+    };
+
+class CNHeadWrapperParser : public CBase
+    {
+public:
+    IMPORT_C ~CNHeadWrapperParser();
+
+    /*!
+    Constructor
+    Does not make an own copy of the data, so aWrapperData should remain
+    in the scope during the lifetime of the CNHeadWrapperParser object.
+    @param aWrapperData Pointer to a buffer containing HeadWrapper data. 
+    */
+    IMPORT_C static CNHeadWrapperParser* NewL( const TPtrC8& aWrapperData );
+
+    /*!
+    Parses Oma Content provisioning data from wrapper
+    */
+    IMPORT_C THttpProvStates::TProvisioningStatus Parse();
+
+    /*!
+    @return headers
+    Leaves with KErrNotFound if there was no headers in the HeadWrapper.
+    */
+    IMPORT_C const TDesC8& GetHeadersL() const;
+    
+    /*!
+    @return  content type
+    Leaves with KErrNotFound if there was no content type in the HeadWrapper.
+    */
+    IMPORT_C const TDesC8& GetContentTypeL() const;
+
+    /*!
+    @return content data
+    */
+    IMPORT_C const TDesC8& GetContentL() const;
+
+    /*!
+    @return report URL from the provisioned data
+    */
+    IMPORT_C const TDesC8& GetReportUrlL() const;
+
+    /*!
+    @return 
+    ETrue if there was no "Provisioning Activation" header
+    in the provisioned head wrapper or if the header was set to value "1"
+    */
+    IMPORT_C TProvisioningActivation GetProvisioningActivation() const;
+
+    /*!
+    @return ETrue if there was "User Interaction" header in the
+    provisioned head wrapper and it was set to value "1". EFalse
+    otherwise.
+    */
+    IMPORT_C TBool GetUserInteraction() const;
+
+private:
+    CNHeadWrapperParser();
+    void ConstructL(const TPtrC8& aWrapperData);
+
+    void DoParseL();
+    void CheckHeadWrapperL();
+
+    /*
+    * Parses Uintvar from beginning of descriptor
+    */
+    TInt ParseUintVar(const TDesC8& aVarDes, TUint32& aVar, TUint &aVarLength);
+    TBool GetBoolParamValueL( const TDesC8& aParam ) const;
+
+private:
+
+    // Wrapper data
+    TPtrC8  iWrapperData;
+
+    CHttpProvHeaders*       iHttpProvHeaders;
+    CHttpProvContentType*   iHttpProvContentType;
+
+    // headers
+    TPtrC8  iHeaders;
+    
+    // Content type
+    TPtrC8  iContentTypeField;
+
+    // Content of wrapper
+    TPtrC8  iContent;            
+    
+    };
+
+#endif // NHEADWRAPPER_PARSER_H