upnp/upnpstack/serviceframework/src/upnphttptransaction.cpp
author hgs
Fri, 06 Aug 2010 18:27:32 +0300
changeset 26 b6b8e90f9863
parent 0 f5a58ecadc66
permissions -rw-r--r--
201031

/** @file
* Copyright (c) 2008 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:  Definition of the CUpnpHttpTransaction class
*
*/


#include <upnphttpmessage.h>
#include <upnpcons.h>
#include <upnphttpmessagefactory.h>

#include "upnphttptransaction.h"

// ----------------------------------------------------------------------------
// CUpnpHttpTransaction::BaseConstructL
// Second phase constructor intended to use by child classes.
// ----------------------------------------------------------------------------
//
EXPORT_C void CUpnpHttpTransaction::BaseConstructL()
    {
    iHttpRequest->AddPairL( UpnpHTTP::KConnection, UpnpHTTP::KClose );
    }

// ----------------------------------------------------------------------------
// CUpnpHttpTransaction::CUpnpHttpTransaction
// Constructs object of transaction and takes ownership of request object
// ----------------------------------------------------------------------------
//
EXPORT_C CUpnpHttpTransaction::CUpnpHttpTransaction( CUpnpHttpMessage* aRequest ):
    iHttpRequest( aRequest )
    {
    ASSERT( NULL != aRequest );
    }

// ----------------------------------------------------------------------------
// CUpnpHttpTransaction::~CUpnpHttpTransaction
// Destructor.
// ----------------------------------------------------------------------------
//
EXPORT_C CUpnpHttpTransaction::~CUpnpHttpTransaction()
    {
    delete iHttpRequest;
    delete iHttpResponse;
    }

// ----------------------------------------------------------------------------
// CUpnpHttpTransaction::Request
// Returns request message of transaction
// ----------------------------------------------------------------------------
//
EXPORT_C CUpnpHttpMessage* CUpnpHttpTransaction::Request()
    {
    return iHttpRequest;
    }

// ----------------------------------------------------------------------------
// CUpnpHttpTransaction::Response
// Returns response message of transaction
// ----------------------------------------------------------------------------
//
EXPORT_C CUpnpHttpMessage* CUpnpHttpTransaction::Response()
    {
    return iHttpResponse;
    }

// ----------------------------------------------------------------------------
// CUpnpHttpTransaction::CreateOkResponseL
// Creates ok response for the request
// ----------------------------------------------------------------------------
//
void CUpnpHttpTransaction::CreateOkResponseL( const TDesC8& aResponseBody )
    {
    ASSERT( NULL == iHttpResponse );    //only one ok response is allowed
    iHttpResponse = RUpnpHttpMessageFactory::HttpResponseOkL( iHttpRequest );
    iHttpResponse->SetBodyL( aResponseBody );
    }

// ----------------------------------------------------------------------------
// CUpnpHttpTransaction::CreateFaultResponseL
// Creates timeout response for the request
// ----------------------------------------------------------------------------
//
void CUpnpHttpTransaction::CreateFaultResponseL( const TDesC8& aResponseBody, 
                                                 TInt aStatus, 
                                                 TInt aError )
    {
    delete iHttpResponse;
    iHttpResponse = NULL;
    iHttpResponse = RUpnpHttpMessageFactory::HttpResponseErrorL(
        iHttpRequest, aStatus );
    iHttpResponse->SetInternalError( aError );
    iHttpResponse->SetBodyL( aResponseBody );
    }


//end of file