diff -r 000000000000 -r ff3b6d0fd310 satengine/SatServer/inc/MSatBIPUtils.h --- /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 +#include + +// 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* 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