pnpmobileservices/pnpms/PnpPaosFilter/src/PnpPaosFilter.h
changeset 18 7d11f9a6646f
parent 4 75a71fdb4c92
child 21 c707676bf59f
--- a/pnpmobileservices/pnpms/PnpPaosFilter/src/PnpPaosFilter.h	Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PnP Paos filter definitions
-*
-*/
-
-
-
-#ifndef WSPAOSFILTER_H
-#define WSPAOSFILTER_H
-
-
-#include <flogger.h>
-//#include <RXMLReader.h>
-#include <http/mhttpfilter.h>
-#include <http/cecomfilter.h>
-#include <http/mhttptransactioncallback.h>
-#include <httpstringconstants.h>
-#include <http/mhttpdatasupplier.h>    // for MHTTPDataSupplier
-//#include <HDCUtil.h>                // for HdcTrustedDomainList
-#include "HdcToPaosInterface.h"                // for HdcTrustedDomainList
-
-//const TInt KMaxURLLength(255);
-typedef TBuf8<KMaxURLLength> TrustedDomain;
-typedef RArray<TrustedDomain> PaosTrustedDomainList;
-
-class CEComFilter;
-class CPnpPaosXml;
-
-/**
-PnP Mobile Services PAOS filter class. Adds PAOS content type to the outgoing
-http GET requests. Catches incoming PAOS requests and responds (with HTTP SOAP 
-posts) giving the parameters the server asked for. Only accepts PAOS requests
-from certain URLs (for example help-portal.com, nokia.com).
-
-Message exchange pattern:
-1. HTTP GET (by the client)
-   * includes PAOS headers
-2. HTTP 200 (server responds by making a PAOS reques)
-   * Content type: application/vnd.paos+xml
-   * SOAP envelope
-3. HTTP POST
-   * Content type: application/vnd.paos+xml
-4. HTTP 200
-
-@see Liberty Reverse HTTP binding for SOAP specification 1.1
-*/
-
-class CPnpPaosFilter :
-    public CEComFilter, 
-    public MHTTPFilter,
-    public MHTTPDataSupplier
-    /* public MHTTPTransactionCallback, to close a transaction
-     * and open a new transaction 
-     */
-    {
-public:
-    /**
-     * This method creates an instance of the filter and
-     * installs it to the HTTP session's filter queue.
-     * This method is called by the ECOM framework.
-     *
-     * @param  aSession a handle to the http session.
-     * @return pointer to the newly installed filter.
-     */
-    static CEComFilter* InstantiateL( TAny* aSession );
-
-    static CPnpPaosFilter* NewL( RHTTPSession* pSession );
-    virtual ~CPnpPaosFilter();
-
-public: // from MHTTPDataSupplier
-
-    TBool GetNextDataPart( TPtrC8& aDataPart );
-    void ReleaseData();
-    TInt OverallDataSize();
-    TInt Reset();
-
-public:
-
-    /**
-     * From MHTTPFilterBase::MHFRunL.
-     * Called when the filter's registration conditions are satisfied
-     * for events that occur on a transaction.
-     * Leaves with KErrNotSupported if making a PAOS request from
-     * an untrusted domain. (other but nokia.com and help-portal.com)
-     * , KErrArgument if PAOS request could not be parsed.
-     *
-     * @param aTransaction The transaction that the event has occurred on
-     * @param aEvent The event that has occurred
-     */
-    virtual void MHFRunL( RHTTPTransaction aTransaction,
-        const THTTPEvent& aEvent);
-
-    /**
-     * From MHTTPFilterBase::MHFRunError.
-     * Called when RunL leaves from a transaction event.
-     *
-     * @param aError The leave code that RunL left with
-     * @param aTransaction The transaction that was being processed
-     * @param aEvent The Event that was being processed
-     * @return KErrNone if the error has been cancelled or the code
-     *         of the continuing error otherwise
-     */
-    virtual TInt MHFRunError( TInt aError,
-                              RHTTPTransaction aTransaction,
-                              const THTTPEvent& aEvent);
-    
-    
-    /**
-     * From MHTTPFilter::MHFUnload.
-     * Called when the filter is being removed from a session's
-     * filter queue.
-     *
-     * @param aSession The session it's being removed from
-     * @param aHandle The filter handle. Complex filters may need to
-     *        refer to this to keep track of which particular registration
-     *        is being unloaded
-     */
-    virtual void MHFUnload( RHTTPSession aSession, THTTPFilterHandle aHandle);
-
-    /**
-     * From MHTTPFilter::MHFLoad.
-     * Called when the filter is being added to the session's
-     * filter queue.
-     *
-     * @param aSession The session it's being added to
-     * @param aHandle The filter handle. Complex filters may need to keep
-     *        track of this, for instance if generating events in
-     *        response to external stimuli.
-     */
-    virtual void MHFLoad( RHTTPSession aSession, THTTPFilterHandle aHandle );
-
-private:
-    CPnpPaosFilter( RHTTPSession* pSession );
-    void ConstructL();
-
-private:
-    /**
-    Read allowed domains into iTrustedHdcDomains
-    */
-    void ReadAllowedDomainsL();
-    
-    /**
-    Read allowed domains into iTrustedPnpDomains
-    */
-    void ReadAllowedPnpDomainsL();
-
-    /**
-    Add PAOS header and paos content type to accept header.
-    */
-    void AddPaosHeadersL( RHTTPHeaders& requestHeaders );
-
-    /**
-    Append the received data chunk to an internal buffer
-    */
-    void CollectResponseBodyL( MHTTPDataSupplier& aBody );
-
-    /**
-    Removes components EUriUserinfo, EUriPath, EUriQuery and EUriFragment
-    from the uri. Only EUriScheme, EUriHost and EUriPort are left.
-    */
-    void HostFromUriL( CUri8* aUri );
-
-    /**
-    Check whether the content type of http headers match to the PAOS content
-    type.
-    */
-    TBool IsPaosContentTypeL( RHTTPHeaders& aHeaders );
-
-    /**
-    Read PAOS request from iPnpPaosXml, construct a PAOS response and
-    post it using PaosPostL.
-    */
-    void PostPaosResponseL( RHTTPTransaction& aTransaction );
-
-    /**
-    Cancels the current transaction and makes 
-    a HTTP Post with iPaosResponse as a body.
-    */
-    void PaosPostL( RHTTPTransaction& aTransaction );
-
-    /**
-    Save HDC trigger response to a file and open it with HelpDeskConnect client
-    */
-    void HandleHdcTriggerL();
-
-    /**
-    Add/Replace a header in RHTTPHeaders
-    */
-    void SetHttpHeaderL( RHTTPHeaders& aMessage, const HTTP::TStrings aIndex,
-        const TDesC8& aString );
-
-    TBool IsPaosHomeDomainL( const TPtrC8 aHost );
-
-private:
-    /** A counter for tracking filter usage. */
-    TInt iLoadCount;
-    /** Transaction id of the current PAOS request. */
-    TInt iTransactionId;
-    /** Filter name for filter listening for events */
-    RStringF iFilterName;
-    /** The URL (exluding path info) in the current PAOS request */
-    CUri8* iPaosPostUrl;
-    /** Parses the received XML documents and constructs a response */
-    CPnpPaosXml* iPnpPaosXml;
-    /** http session */
-    RHTTPSession* iSession;
-    /** string pool for storing RStrings */
-    RStringPool iSessionStringPool;
-    /** Set to ETrue if a request made to nokia.com or help-portal.com
-    This member tells if a PAOS request is allowed or not */
-    TBool iMakePaosResponse;
-#ifndef __SERIES60_ 
-    /** 
-    Set to ETrue when a HelpDeskConnect PAOS post has been successfully done.
-    May be used    to check if a HDC trigger file should be expected next 
-    */
-    TBool iHdcPaosPostDone;
-#endif
-    /** Domains that are allowed to make PAOS requests for HDC parameters */
-    HdcTrustedDomainList iTrustedHdcDomains;
-    
-    PaosTrustedDomainList iTrustedPnpDomains;
-    };
-
-
-#endif // WSPAOSFILTER_H
-