diff -r 000000000000 -r 3ce708148e4d pnpmobileservices/pnpms/PnP/NHwrParser/NHeadWrapperParser.h --- /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 +#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