mtpfws/mtpfw/transports/transportapi/inc/mmtptransportconnection.h
changeset 0 d0791faffa3f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpfws/mtpfw/transports/transportapi/inc/mmtptransportconnection.h	Tue Feb 02 01:11:40 2010 +0200
@@ -0,0 +1,168 @@
+// 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
+ @internalTechnology
+*/
+
+#ifndef MMTPTRANSPORTCONNECTION_H
+#define MMTPTRANSPORTCONNECTION_H
+
+#include <e32cmn.h>
+
+class MMTPConnectionProtocol;
+class MMTPType;
+class TMTPTypeEvent;
+class TMTPTypeRequest;
+class TMTPTypeResponse;
+
+/** 
+Defines the MTP connection transport layer interface.
+@internalTechnology
+  
+*/
+class MMTPTransportConnection
+    {
+public:
+
+    /**
+    Binds the MTP protocol layer notification interface to the connection transport 
+    layer.
+    @param aProtocol The MTP protocol layer notification interface.
+    @leave One of the system wide error codes, if a processing failure occurs.
+    */
+    virtual void BindL(MMTPConnectionProtocol& aProtocol) = 0;
+
+    /**
+    Provides the MTP protocol layer notification interface which is bound to
+    the connection transport layer.
+    @return The MTP protocol layer notification interface binding.
+    */
+    virtual MMTPConnectionProtocol& BoundProtocolLayer() = 0;
+    
+    /**
+    Initiates a connection shutdown sequence, usually as a result of an 
+    unrecoverable MTP protocol error. This sequence is completed when the 
+    connection transport layer signals ConnectionClosed to the MTP connection 
+    manager interface.
+    @see MMTPConnectionMgr::ConnectionClosed.
+    */
+    virtual void CloseConnection() = 0;
+
+    /**
+    Initiates an MTP data object receive sequence in the connection transport 
+    layer. This sequence is completed when the transport layer connection signals
+    ReceiveDataComplete to the MTP protocol layer notification interface.
+    @param aData The MTP data object sink.
+    @param aRequest The MTP request dataset of the active MTP transaction.
+    @see MMTPConnectionProtocol::ReceiveDataComplete
+    @leave One of the system wide error codes, if a processing failure occurs.
+    */
+    virtual void ReceiveDataL(MMTPType& aData, const TMTPTypeRequest& aRequest) = 0;
+
+    /**
+    Aborts an MTP data object receive sequence in-progress in the connection 
+    transport layer. This sequence is completed when the connection transport 
+    layer signals ReceiveDataComplete to the MTP connection protocol layer 
+    interface.
+    @param aRequest The MTP request dataset of the active MTP transaction.
+    @see ReceiveData
+    @see MMTPConnectionProtocol::ReceiveDataComplete
+    @leave One of the system wide error codes, if a processing failure occurs.
+    */
+    virtual void ReceiveDataCancelL(const TMTPTypeRequest& aRequest) = 0;
+    
+    /**
+    Initiates an MTP data object send sequence in the connection transport 
+    layer. This sequence is completed when the transport layer connection 
+    signals SendDataComplete to the MTP protocol layer notification interface.
+    @param aData The MTP data object source.
+    @param aRequest The MTP request dataset of the active MTP transaction.
+    @see MMTPConnectionProtocol::SendDataComplete
+    @leave One of the system wide error codes, if a processing failure occurs.
+    */
+    virtual void SendDataL(const MMTPType& aData, const TMTPTypeRequest& aRequest) = 0;
+
+    /**
+    Aborts an MTP data object send sequence in-progress in the connection 
+    transport layer. This sequence is completed when the connection transport 
+    layer signals SendDataComplete to the MTP connection protocol layer 
+    interface.
+    @param aRequest The MTP request dataset of the active MTP transaction.
+    @see SendData
+    @see MMTPConnectionProtocol::SendDataComplete
+    @leave One of the system wide error codes, if a processing failure occurs.
+    */
+    virtual void SendDataCancelL(const TMTPTypeRequest& aRequest) = 0;
+    
+    /**
+    Initiates an MTP event dataset send sequence in the connection 
+    transport layer. This sequence is completed when the connection transport 
+    layer signals SendEventComplete to the MTP connection protocol layer 
+    interface.
+    @param aEvent The MTP event data object source.
+    @see MMTPConnectionProtocol::SendEventComplete
+    @leave One of the system wide error codes, if a processing failure occurs.
+    */
+    virtual void SendEventL(const TMTPTypeEvent& aEvent) = 0;
+    
+    /**
+    Initiates an MTP response dataset send sequence in the connection 
+    transport layer. This sequence is completed when the connection transport 
+    layer signals SendResponseComplete to the MTP connection protocol layer 
+    interface.
+    @param aResponse The MTP response data object source.
+    @param aRequest The MTP request dataset of the active MTP transaction.
+    @see MMTPConnectionProtocol::SendResponseComplete
+    @leave One of the system wide error codes, if a processing failure occurs.
+    */
+    virtual void SendResponseL(const TMTPTypeResponse& aResponse, const TMTPTypeRequest& aRequest) = 0;
+    
+    /**
+    Signals the completion of the active MTP operation request transaction 
+    sequence initiated by a preceding ReceivedRequest signal made to the
+    MTP protocol layer notification interface.
+    @param aResponse The completed MTP request data object.
+    @param aRequest The MTP request dataset of the active MTP transaction.
+    @leave One of the system wide error codes, if a processing failure occurs.
+    */
+    virtual void TransactionCompleteL(const TMTPTypeRequest& aRequest) = 0;
+
+    /**
+    Unbinds the MTP protocol layer notification interface from the connection transport 
+    layer.
+    @param aProtocol The MTP protocol layer notification interface.
+    */
+    virtual void Unbind(MMTPConnectionProtocol& aProtocol) = 0;
+    
+    /**
+    Provides an MTP connection transport layer extension interface implementation 
+    for the specified interface Uid. 
+    @param aInterfaceUid Unique identifier for the extension interface being 
+    requested.
+    @return Pointer to an interface instance or 0 if the interface is not 
+    supported. Ownership is NOT transfered.
+    */
+    virtual TAny* GetExtendedInterface(TUid aInterfaceUid) = 0;
+    
+    /*
+     * Provide a method to get implementation UID of concrete transport connection bearer
+     * @return Implementation UID of concrete transport connection bearer.
+     */
+    virtual TUint GetImplementationUid() = 0;
+};
+    
+#endif // MMTPTRANSPORTCONNECTION_H