mtpfws/mtpfw/inc/mmtptransactionproxy.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 01:11:40 +0200
changeset 0 d0791faffa3f
permissions -rw-r--r--
Revision: 201003 Kit: 201005

// Copyright (c) 2006-2009 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:
//

/**
 @file
 @internalComponent
*/

#ifndef MMTPTRANSACTIONPROXY_H
#define MMTPTRANSACTIONPROXY_H

#include <e32cmn.h>
#include <e32def.h>

class MMTPConnection;
class MMTPObjectMgr;
class MMTPPuidMgr;
class MMTPReferenceMgr;
class MMTPType;
class TMTPTypeEvent;
class TMTPTypeResponse;
class TMTPTypeRequest;
class RFs;

/** 
Defines the MTP framework transaction proxy handler application interface.
This is an internal interface that allows a data provider to complete the 
processing of a delegated (proxy) request.
@internalComponent
 
*/
class MMTPTransactionProxy
    {
public:
    
    /**
    Initiates a data object receive sequence in the MTP transaction proxy 
    handler. This is an asynchronous method. This method should only be invoked
    when processing the ERequestPhase of an MTP transaction. 
    @param aData The MTP data object sink buffer.
    @param aRequest The MTP request dataset of the active MTP transaction.
    @param aConnection The handle of the MTP connection on which the transaction
    is being processed. 
    @param aStatus The status used to return asynchronous completion 
    information regarding the request.
    @leave KErrNotReady, if invoked when the current MTP transaction phase is 
    not ERequestPhase.
    */
    virtual void ProxyReceiveDataL(MMTPType& aData, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection, TRequestStatus& aStatus) = 0;
    
    /**
    Initiates a data object send sequence in the MTP transaction proxy 
    handler. This is an asynchronous method. This method should only be invoked
    when processing the ERequestPhase of an MTP transaction. 
    @param aData The MTP data object source buffer.
    @param aRequest The MTP request dataset of the active MTP transaction.
    @param aConnection The handle of the MTP connection on which the transaction
    is being processed.
    @param aStatus The status used to return asynchronous completion 
    information regarding the request.
    @leave KErrNotReady, if invoked when the current MTP transaction phase is 
    not ERequestPhase.
    */
    virtual void ProxySendDataL(const MMTPType& aData, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection, TRequestStatus& aStatus) = 0;
    
    /**
    Initiates a data object an MTP response dataset send sequence in the MTP 
    transaction proxy handler. This is an asynchronous method. This method 
    should only be invoked when processing either the ERequestPhase or 
    EResponsePhase of an MTP transaction.
    @param aData The MTP aResponse dataset source buffer.
    @param aConnection The handle of the MTP connection on which the transaction
    is being processed.
    @param aStatus The status used to return asynchronous completion 
    information regarding the request.
    @leave KErrNotReady, if invoked when the current MTP transaction phase is 
    not ERequestPhase or EResponsePhase.
    */
    virtual void ProxySendResponseL(const TMTPTypeResponse& aResponse, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection, TRequestStatus& aStatus) = 0;
    
    /**
    Signals to the MTP transaction proxy handler that all processing related 
    to the current transaction has been completed. This method should only be 
    invoked when processing the ECompletingPhase of the MTP transaction 
    @param aRequest The MTP request dataset that initiated the transaction.
    @param aConnection The handle of the MTP connection on which the transaction
    is being processed.
    @param aStatus The status used to return asynchronous completion 
    information regarding the request.
    @leave KErrNotReady If invoked when the current MTP transaction phase is 
    invalid.
    */
    virtual void ProxyTransactionCompleteL(const TMTPTypeRequest& aRequest, MMTPConnection& aConnection) = 0;
    };
    
#endif // MMTPTRANSACTIONPROXY_H