satengine/SatServer/inc/MSatBIPUtils.h
changeset 0 ff3b6d0fd310
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/inc/MSatBIPUtils.h	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,181 @@
+/*
+* Copyright (c) 2002-2007 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:  BIP Utils interface for BIP proactive commands.
+*
+*/
+
+
+
+#ifndef MSATBIPUTILS_H
+#define MSATBIPUTILS_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <etelsat.h>
+
+// CLASS DECLARATION
+class MSatBIPDataChannel;
+class MSatApnHandler;
+
+// CONSTANTS
+// These constants are used by BIP related objects
+// Used in terminal responses and DataAvailable envelope
+const TInt KSatBIPMoreThanMaxSize = 0xFF;
+
+// The minimum size of receive buffer is 1500 bytes.
+const TInt KSatBIPMinReceiveBufferSize = 0x5DC;
+
+// Maximum buffer size from SIM in OpenChannel command is 1500.
+const TInt KSatBIPMaxBufferSize = 0x5DC;
+
+// Maximum size of one ReceiveCommand TerminalResponse
+const TInt KSatBIPMaxResponseSize = 0xED;
+
+/**
+*  BIP Utils interface. Provides functionality to
+*  BIP proactive command handlers.
+*
+*  @lib SatEngine
+*  @since Series 60 3.0
+*/
+class MSatBIPUtils
+    {
+    public: // Enums
+
+        // These values can be used straigth in TerminalResponses
+        // additional info with KBearerIndepProtocolError
+        enum TSatBIPErrors
+            {
+            ESatBIPSuccess                     = 0x00,
+            ESatBIPNoChannelAvail              = 0x01,
+            ESatBIPChannelClosed               = 0x02,
+            ESatBIPChannelIdNotValid           = 0x03,
+            ESatBIPReqBufSizeNotAvail          = 0x04,
+            ESatBIPSecurityError               = 0x05,
+            ESatBIPTransportLevelNotAvailable  = 0x06,
+            ESatBIPRemoteDeviceNotReachable    = 0x07,
+            ESatBIPServiceError                = 0x08,
+            ESatBIPServiceIdUnknown            = 0x09
+            };
+
+        // This comes with OpenChannel command to identify the type
+        // of bearer in the data channel.
+        enum TSatBearerType
+            {
+            ESatDefault,    /* Default bearer type */
+            ESatGPRS,       /* GPRS */
+            ESatCSD         /* CSD, Not supported */
+            };
+
+        // Defines the possible channel IDs. The values should be the same as are in
+        // etelsat.h and these values can be used in functions.
+        enum TSatChannelId
+            {
+            ESatNoChannel               = 0x00,
+            ESatChannel1                = 0x01,
+            ESatChannel2                = 0x02,
+            ESatChannel3                = 0x03,
+            ESatChannel4                = 0x04,
+            ESatChannel5                = 0x05,
+            ESatChannel6                = 0x06,
+            ESatChannel7                = 0x07
+            };
+
+        // Supported status informations
+        enum TSatChannelStatus
+            {
+            ESatNoFurtherInformation = 0x00,
+            ESatLinkDropped          = 0x05
+            };
+
+    protected:  // Constructors and destructor
+
+        /**
+        * C++ default constructor.
+        */
+        MSatBIPUtils() {};
+
+        /**
+        * Destructor.
+        */
+        virtual ~MSatBIPUtils() {};
+
+    public: // New functions
+
+        /**
+        * Creates new data channel and returns reference to it.
+        * @param aBearerType identifies the type of data channel to create.
+        * @param TSatBIPError code indicating the execution status.
+        * @return Pointer to created data channel
+        */
+        virtual MSatBIPDataChannel* CreateChannelL(
+            const TSatBearerType aBearerType,
+            TInt& aErrCode ) = 0;
+
+        /**
+        * Request to close specified data channel.
+        * @param aChannelId Identifies the channel to be closed.
+        * @return TSatBIPError code indicating the execution status.
+        */
+        virtual TInt CloseChannel( const TInt aChannelId ) = 0;
+
+        /**
+        * Request to open new data channel
+        * @param aChannelId Identifies the channel.
+        * @param aErrCode TSatBIPError code indicating the execution status.
+        * @return Pointer to requested data channel
+        */
+        virtual MSatBIPDataChannel* DataChannel( const TInt aChannelId,
+            TInt& aErrCode ) = 0;
+
+        /**
+        * Request to close specified data channel.
+        * @return Array containing all available data channels.
+        */
+        virtual CArrayPtrFlat<MSatBIPDataChannel>* DataChannels() = 0;
+
+        /**
+        * Generates channel status object from given parameters to
+        * used in terminal responses.
+        * @param aChannelId Data channel identifier.
+        * @param aStatus Data channel's status.
+        * @return channel status object that can be put into terminal responses.
+        */
+        virtual RSat::TChannelStatus GenerateChannelStatusL(
+            const TInt aChannelId, TInt aStatus ) = 0;
+
+        /**
+        * Reference to APN handler
+        * @return Interface reference to CSatApnHandler
+        */
+        virtual MSatApnHandler& ApnHandler() = 0;
+        
+        /**
+        * Status of the PDP Context
+        * @return ETrue, if there is active PDP Context
+        */
+        virtual TBool IsContextActive() = 0;
+
+    private:
+
+        // Prohibit copy constructor if not deriving from CBase.
+        MSatBIPUtils( const MSatBIPUtils& );
+
+        // Prohibit assigment operator if not deriving from CBase.
+        MSatBIPUtils& operator=( const MSatBIPUtils& );
+    };
+
+#endif      // MSATBIPUTILS_H
+
+// End of File