--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/satserver/inc/MSatBIPUtils.h Wed Jul 21 18:26:52 2010 +0300
@@ -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