diff -r 798ee5f1972c -r 826cea16efd9 dvrengine/CommonRecordingEngine/inc/CCRConnection.h --- a/dvrengine/CommonRecordingEngine/inc/CCRConnection.h Thu Aug 19 10:54:18 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,351 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: Class for wrapping RConnection* -*/ - - - - -#ifndef __CCRCONNECTION_H -#define __CCRCONNECTION_H - -// INCLUDES -#include "MCRConnectionObserver.h" -#include -#include -#include -#include -#include - -// CONSTANTS -/** Max Bandwidth constants -- from Helix Player, R1_Mobile_4_0_Factory.cfg : GRPS */ -const TInt KCRBandwidthGPRS( 40200 ); -/** Max Bandwidth constants -- from Helix Player, R1_Mobile_4_0_Factory.cfg : EGRPS */ -const TInt KCRBandwidthEdgeGPRS( 89600 ); -/** Max Bandwidth constants -- from Helix Player, R1_Mobile_4_0_Factory.cfg : 3G */ -const TInt KCRBandwidthWCDMA( 384000 ); -/** Max Bandwidth constants -- from Helix Player, R1_Mobile_4_0_Factory.cfg : WLAN */ -const TInt KCRBandwidthWLAN( 1432572 ); -/** Max Bandwidth constants -- from Helix Player, R1_Mobile_4_0_Factory.cfg : LAN */ -const TInt KCRBandwidthLAN( 3000000 ); - -// MACROS -// None - -// DATA TYPES -// None - -// FORWARD DECLARATIONS -class CCRConnection; - -// CLASS DECLARATION - -/** -* RConnection wrapper -*/ -class CCRConnection : public CActive, - public MConnectionMonitorObserver - { - -public: // Data types - - /** - * Enumeration for different connection stages - */ - enum TConnectionState - { - EIdle, /**< Connection idle */ - EFindingAP, /**< Search access point */ - EFindingBearer, /**< Finding bearer */ - EOpen, /**< Opening connection */ - EConnecting /**< Connecting */ - }; - - /** - * Heuristics for the connection, ie, characteristics from the - * connection discovered during run-time and that may affect it's usage. - */ - enum TConnectionHeuristic - { - /** - * Connection is unable to stream RTP over UDP, - * most likely due to firewall blocking. - */ - EUdpStreamingBlocked = 0 - }; - -public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSockServer - * @return CCRConnection pointer to CCRConnection class - */ - static CCRConnection* NewL( RSocketServ& aSockServer ); - - /** - * Destructor. - */ - virtual ~CCRConnection( ); - -public: // New methods - /** - * Method for starting and attaching a connection. - * @since Series 60 3.0 - * @param aConnectionId Connection id. - * @return none. - */ - void Attach( TUint aConnectionId ); - - /** - * Method for getting the rconnection to use. This is useful only - * when connection state is open. - * @since Series 60 3.0 - * @param none. - * @return reference to RConnection. - */ - RConnection& Connection( void ); - - /** - * Method for getting state of the connection. - * @since Series 60 3.0 - * @param none. - * @return connection state. - */ - TConnectionState State( void ) const; - - /** - * Gets bearer for current connection. - * @since Series 60 3.0 - * @param none. - * @return bearer type - */ - TConnMonBearerType BearerType() const; - - /** - * Gets (estimated) maximum available connection bandwidth. - * @since Series 60 3.0 - * @param none. - * @return bandwidth in bit/s, zero if unkown or connection not available. - */ - TInt MaximumBandwidth(); - - /** - * Check if bearer is considered 3G, WLAN or similar - * @since Series 60 3.0 - * @param none. - * @return TBool - */ - TBool IsBearerWLANor3G( TConnMonBearerType aBearer ); - - /** - * Add observer for connection status. - * @since Series 60 3.0 - * @param aObserver new observer - * @return TInt - */ - TInt RegisterObserver( MCRConnectionObserver* aObserver ); - - /** - * remove observer for connection status. - * @since Series 60 3.0 - * @param aObserver observer to be removed. - * @return TInt. - */ - TInt UnregisterObserver( MCRConnectionObserver* aObserver ); - - /** - * Retrives a heuristic associated with the connection. - * @since Series 60 3.0 - * @param aHeuristic - * @return value associated with the heuristic. - */ - TBool GetHeuristic( TConnectionHeuristic aHeuristic ); - - /** - * Sets a heuristic associated with the connection - * @since Series 60 3.0 - * @param aHeuristic - * @param aValue value associated with the heuristic. - * @return none. - */ - void SetHeuristic( TConnectionHeuristic aHeuristic, - TBool aValue ); - -private: // Methods from base classes - - /** - * From CActive. - * Cancel protocol implementation. - * @since Series 60 3.0 - * @param none. - * @return none. - */ - void DoCancel(); - - /** - * From CActive. - * Outstanding request completed. - * @since Series 60 3.0 - * @param none. - * @return none. - */ - void RunL(); - - /** - * From CActive. - * Handle error. - * @since Series 60 3.0 - * @param aError Error code. - * @return KErrNone. - */ - TInt RunError( TInt aError ); - - /** - * From MConnectionMonitorObserver. - * Receives event notifications from connection monitor, - * specifically for bearer changes. - * @since Series 60 3.0 - * @param aConnMonEvent - * @return none. - */ - void EventL( const CConnMonEventBase& aConnMonEvent ); - -private: // New methods - - /** - * Method for sending connection error events to message queue. - * @since Series 60 3.0 - * @param aError is Error code. - * @return none - */ - void SendConnectionErrorToQueue( TInt aError ); - - /** - * Close internal RConnection iConnection. - * @since Series 60 3.0 - * @param none. - * @return none - */ - void CloseRConnection(); - - /** - * Finds access point. - * @since Series 60 3.0 - * @param none. - * @return none - */ - TInt FindApL(); - - /** - * Finds bearer. - * @since Series 60 3.0 - * @param none. - * @return none - */ - void FindBearerL(); - - /** - * Notify UI about connection. - * @since Series 60 3.0 - * @param none. - * @return none - */ - void NotificationL(); - -private: // Constructors and destructors - - /** - * default constructor - * @param aSockServer a reference to socket server. - */ - CCRConnection( RSocketServ& aSockServer ); - - /** - * 2nd phase constructor - */ - void ConstructL(); - -private: // Data - - /** - * Socker server. - */ - RSocketServ& iSockServer; - - /** - * Connection. - */ - RConnection iConnection; - - /** - * Observers. - */ - RPointerArray iObservers; - - /** - * Current state. - */ - TConnectionState iState; - - /** - * Connection preference. - */ - TCommDbConnPref iConnPref; - - /** - * variable for getting notification when interface goes up or down - */ - TNifProgressBuf iNotification; - - /** - * Connection id to be used - */ - TUint iCurrentConnectionId; - - /** - * Connection monitor - */ - RConnectionMonitor iConMon; - - /** - * How many active connections were found by connection monitor - */ - TUint iConnectionCount; - - /** - * Heuristics for connection - */ - TUint32 iHeuristics; - - /** - * Bearer type for current connection - */ - TConnMonBearerType iBearerType; - - /** - * Bearer type detected after change - */ - TConnMonBearerType iNewBearerType; - - /** - * Whether we have connection progress notification pending or not - */ - TBool iConMonProgressNotifyPending ; - - }; - -#endif // __CCRCONNECTION_H - -// End of file