satengine/SatServer/inc/MSatBIPDataChannel.h
changeset 0 ff3b6d0fd310
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/inc/MSatBIPDataChannel.h	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,173 @@
+/*
+* Copyright (c) 2002-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:  Interface for BIP Data channel.
+*
+*/
+
+
+
+#ifndef MSATBIPDATACHANNEL_H
+#define MSATBIPDATACHANNEL_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <etelsat.h>
+#include <extendedconnpref.h> // TExtendedConnPref
+
+// CLASS DECLARATION
+class MSatSendDataObserver;
+class MSatConnectionObserver;
+/**
+*  Interface for BIP Data channel.
+*
+*  @lib SatEngine
+*  @since Series 60 3.0
+*/
+class MSatBIPDataChannel
+    {
+
+    public: // Structs
+
+        // Contains all the information needed to establish connection.
+        // Parameters are common to all bearers
+        struct TSatBipConnectionInfo
+            {
+            RSat::TSimMeInterface iProtocol;     // TCP or UDP, port number
+            RSat::TOtherAddress   iDestination;  // Dest. address, IPv4 or IPv6
+            TUint16               iBufferSize;   // Size of the receive buffer
+            TExtendedConnPref*    iOverrideSet;  // extended connection
+            RSat::TBearerParams   iBearerParams; // QoS parameters
+            RSat::TOtherAddress   iSource;       // Local addr, IPv4 or IPv6
+            TUint32               iCreatedApnId; // ID of the created APN
+            };
+
+    public: // New functions
+
+        /**
+        * Sets up connection. Does not activate it yet.
+        * @param aConnParams includes all needed information to
+        *        open the connection.
+        */
+        virtual void SetupConnectionL(
+            const TSatBipConnectionInfo& aConnParams ) = 0;
+
+        /**
+        * Activates connection. Connection information must be set before
+        * activating connection
+        * @param aObserver Observer of the connection
+        */
+        virtual void ActivateConnectionL( 
+            MSatConnectionObserver* aObserver ) = 0;
+        
+        /**
+        * From MSatBIPDataChannel Returns Negotiated bearer parameters
+        * @param aResult Output Negotiated bearer parameters
+        */
+        virtual void GetNegotiatedQoSParams( 
+            RSat::TBearerParams& aResult ) const = 0;
+        
+        /**
+        * Sends the data or stores it into a buffer for later send.
+        * @param aData Data to be send.
+        * @param aSendImmedeately Indicates whether to send immediately or
+        *        store data to buffer for later send.
+        * @param aFreeBufferSize The number of bytes of empty size in the buffer
+        * @param aObserver Observer of the completion of data send.
+        * @return Error code indicating the status of the command execution.
+        */
+        virtual TInt SendDataL( const TDes8& aData,
+                                const TBool aSendImmediately,
+                                TInt& aFreeBufferSize,
+                                MSatSendDataObserver* aObserver ) = 0;
+
+        /**
+        * Receives the data from the buffer.
+        * @param aData Data to receive.
+        * @param aBytesToRead The number of requested bytes to return
+        * @param aAvailableBytes Number of unread bytes left in the buffer.
+        * @return Error code indicating the status of the command execution.
+        */
+        virtual TInt ReceiveDataL( TDes8& aData,
+                                   const TInt aBytesToRead,
+                                   TInt& aAvailableBytes ) = 0;
+
+        /**
+        * Returns the ID of this data channel.
+        * @return ID of this channel.
+        */
+        virtual TInt ChannelId() const = 0;
+
+        /**
+        * Returns the ID of this data channel to ChannelStatus
+        * @return ID that can be placed to ChannelStatus
+        */
+        virtual TUint8 ChannelStatusChannelId() const = 0;
+
+        /**
+        * Returns the status of this channel.
+        * @return Status of this data channel
+        */
+        virtual TInt Status() const = 0;
+
+        /**
+        * Closes the connection and empties the buffers.
+        */
+        virtual void CloseChannel() = 0;
+
+        /**
+        * Cancels all actions.
+        */
+        virtual void CancelAll() = 0;
+
+        /**
+        * Indicates whether PDP contex is active or not.
+        * @return TBool indicating context activation.
+        */
+        virtual TBool IsContextActive() const = 0;
+        
+        /**
+        * Returns connection information
+        * @return Connection information
+        */
+        virtual const TSatBipConnectionInfo& ConnInfo() const = 0;
+       
+        /**
+        * Close udp socket.
+        */
+        virtual void StopUdpSocket() = 0;
+
+        /**
+        * Destructor.
+        */
+        virtual ~MSatBIPDataChannel() {};
+
+    protected:  // Constructors and destructor
+
+        /**
+        * Constructor.
+        */
+        MSatBIPDataChannel() {};
+
+    private:
+
+        // Assign operator
+        MSatBIPDataChannel& operator=( const MSatBIPDataChannel& );
+
+        // Prohibit copy constructor if not deriving from CBase.
+        MSatBIPDataChannel( const MSatBIPDataChannel& );
+    };
+
+#endif      // MSATBIPDATACHANNEL_H
+
+// End of File