--- a/mmsharing/mmshavailability/src/musavaconnectionmonitor.cpp Tue Feb 02 00:09:07 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,345 +0,0 @@
-/*
-* Copyright (c) 2005-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: Provide interface for the client requestin availability class.
-*
-*/
-
-
-
-#include "musavaconnectionmonitor.h"
-#include "musavasettingsimp.h"
-#include "musavanetworkavailability.h"
-#include "musavaobserver.h"
-#include "musavaavailability.h"
-#include "musavasharedobject.h"
-#include "musavaconnectionmonitorobserver.h"
-#include "musavasip.h"
-#include "muslogger.h"
-
-#include <e32base.h>
-#include <sipprofile.h>
-#include <mmtsy_names.h>
-
-// -------------------------------------------------------------------------
-// Two-phased constructor.
-// -------------------------------------------------------------------------
-//
-CMusAvaConnectionMonitor* CMusAvaConnectionMonitor::NewL(
- CMusAvaSharedObject& aSharedObject )
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::NewL()" )
- CMusAvaConnectionMonitor* self =
- new( ELeave ) CMusAvaConnectionMonitor( aSharedObject );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::NewL()" )
- return self;
- }
-
-
-// -------------------------------------------------------------------------
-// Destructor.
-// -------------------------------------------------------------------------
-//
-CMusAvaConnectionMonitor::~CMusAvaConnectionMonitor()
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::\
- ~CMusAvaConnectionMonitor()" )
- iConnectionMonitorObserver.Reset();
- iConnectionMonitorObserver.Close();
- // Close the monitor when event notifications are no longer required
- iConnectionMonitor.Close();
-
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::\
- ~CMusAvaConnectionMonitor()" )
- }
-
-// -------------------------------------------------------------------------
-// Constructor function.
-// -------------------------------------------------------------------------
-//
-void CMusAvaConnectionMonitor::EventL(const CConnMonEventBase& aConnMonEvent)
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::EventL()" )
- TUint connectionId = aConnMonEvent.ConnectionId();
- TInt eventType = aConnMonEvent.EventType();
- MUS_LOG1( "Connection ID = %d", connectionId )
- MUS_LOG1( "Event type = %d", eventType )
-
- for( TInt i=0; i<iConnectionMonitorObserver.Count(); i++ )
- {
- iConnectionMonitorObserver[i]->EventL( aConnMonEvent );
- }
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::EventL()" )
- }
-
-
-// -------------------------------------------------------------------------
-// Constructor function.
-// -------------------------------------------------------------------------
-//
-CMusAvaConnectionMonitor::CMusAvaConnectionMonitor(
- CMusAvaSharedObject& aSharedObject ):
-iSharedObj( &aSharedObject )
- {
- }
-
-// -------------------------------------------------------------------------
-// Second phase constructor.
-// -------------------------------------------------------------------------
-//
-void CMusAvaConnectionMonitor::ConstructL()
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::ConstructL()" )
- User::LeaveIfError( iConnectionMonitor.ConnectL() );
-
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::ConstructL()" )
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-void CMusAvaConnectionMonitor::AddAdapterL(
- MMusAvaConnectionMonitorObserver& aAdapter )
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::\
- AddAdapterL( MMusAvaConnectionMonitorObserver& aAdapter )" )
- iConnectionMonitorObserver.AppendL( &aAdapter );
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaSip::\
- AddAdapterL( MMusAvaConnectionMonitorObserver& aAdapter )" )
- }
-
-// -------------------------------------------------------------------------
-// Created connection ID for multimedia sharing is returned
-// -------------------------------------------------------------------------
-//
-TUint CMusAvaConnectionMonitor::CreatedConnectionID()
- {
- return iConnectionID;
- }
-
-// -------------------------------------------------------------------------
-// Connection ID is stored
-// -------------------------------------------------------------------------
-//
-void CMusAvaConnectionMonitor::SetConnectionID( TUint aConnectionID )
- {
- iConnectionID = aConnectionID;
- }
-// -------------------------------------------------------------------------
-// Active connection ID for multimedia sharing is returned
-// -------------------------------------------------------------------------
-//
-TUint CMusAvaConnectionMonitor::ConnectionIDL()
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::ConnectionIDL()" )
- TUint iap = 0; //Internet acces point
- TUint sipIap = 0; //SIP acces point
- TUint count = 0; //Number of connections
- TUint id = 0; //Connection ID
- TUint activeIapID = 0; //Connection ID for active SIP IAP
- TUint subId = 0; //SubconnectionID
- TUint subCount; //Subconnectioncount
- TRequestStatus status;
-
- //Fetch number of connections to count
- count = ConnectionCount();
- if ( count == 0 )
- {
- MUS_LOG( "mus: [MUSAVA] Non connections" )
- }
- else
- {
- MUS_LOG1( "mus: [MUSAVA] Fetch number of connections: %d", count )
-
- //Fetch internet access point to iap
- sipIap = MultimediaSharingAccessPointID();
- if ( sipIap == 0 )
- {
- MUS_LOG( "mus: [MUSAVA] Non Access Point ID's for app" )
- }
- else
- {
- MUS_LOG1( "mus: [MUSAVA] Internet access point for sip: %d",
- sipIap )
-
- TBool goOn = ETrue;
- for ( TUint i = 1; i <= count && goOn; i++ )
- {
- //Fetch connectionId to id
- User::LeaveIfError(iConnectionMonitor.GetConnectionInfo(
- i, id, subCount ));
- MUS_LOG1( "mus: [MUSAVA] Connection ID = %d", id )
-
- //Fetch internet access point to iap
- iConnectionMonitor.GetUintAttribute( id, subId, KIAPId,
- iap, status );
- #ifndef UNIT_TESTING
- User::WaitForRequest( status );
- #endif
- MUS_LOG1( "mus: [MUSAVA] Internet access point %d ", iap )
-
- // when correct Iap found ...
- if( iap == sipIap )
- {
- MUS_LOG( "mus: [MUSAVA] Connection ID found" )
- activeIapID = id;
- goOn = EFalse;
- }
- }
-
- }
- }
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::ConnectionIDL()" )
- return activeIapID;
- }
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-TBool CMusAvaConnectionMonitor::KillPdpContext()
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::KillPdpContext" )
-
- TUint connId = 0;
- TUint subConnectionCount = 0;
- TRequestStatus requestStatus;
- TUint count = ConnectionCount();
- TInt ret = 0;
- TBool retval = EFalse;
-
- for ( TUint i = 1; i <= count && !retval; i++ )
- {
- TInt bearerType = 0;
- iConnectionMonitor.GetIntAttribute( connId,
- subConnectionCount,
- KBearer,
- bearerType,
- requestStatus );
- User::WaitForRequest( requestStatus );
- if ( bearerType == EBearerCSD ||
- bearerType == EBearerHSCSD ||
- bearerType == EBearerGPRS ||
- bearerType == EBearerEdgeGPRS ||
- bearerType == EBearerWCDMA ||
- bearerType == EBearerWcdmaCSD )
- {
- MUS_LOG1( "mus: [MUSAVA] now killing connection whose connId \
- == <%d>", connId )
- ret = iConnectionMonitor.GetConnectionInfo( i, connId,
- subConnectionCount );
- if ( ret == KErrNone )
- {
- ret = iConnectionMonitor.SetBoolAttribute( connId, 0,
- KConnectionStop, ETrue );
- if ( ret == KErrNone )
- {
- retval = ETrue;
- }
- }
- }
- }
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::KillPdpContext" )
- return retval;
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-void CMusAvaConnectionMonitor::RemoveAdapter(
- MMusAvaConnectionMonitorObserver& aAdapter )
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::\
- RemoveAdapter( MMusAvaConnectionMonitorObserver& aAdapter )" )
- TInt index = iConnectionMonitorObserver.Find( &aAdapter );
-
- if( index != KErrNotFound )
- {
- iConnectionMonitorObserver.Remove( index );
- }
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaSip::\
- RemoveAdapter( MMusAvaConnectionMonitorObserver& aAdapter )" )
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-void CMusAvaConnectionMonitor::NotifyEventL()
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::NotifyEventL()" )
- iConnectionMonitor.NotifyEventL( *this );
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::NotifyEventL()" )
- }
-
-// -------------------------------------------------------------------------
-// Active connection count for multimedia sharing is returned
-// -------------------------------------------------------------------------
-//
-TUint CMusAvaConnectionMonitor::ConnectionCount()
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::ConnectionCount()" )
- TUint count = (TUint) KErrNotFound;
- TRequestStatus status;
-
- iConnectionMonitor.GetConnectionCount( count, status );
- #ifndef UNIT_TESTING
- User::WaitForRequest( status );
- #endif
- if ( status.Int() != KErrNone )
- {
- MUS_LOG( "mus: [MUSAVA] Phone doesn't have any active connections" )
- }
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::ConnectionCount()" )
- return count;
- }
-
-// -------------------------------------------------------------------------
-// Active Internet Access Point ID for multimedia sharing is returned
-// -------------------------------------------------------------------------
-//
-TUint CMusAvaConnectionMonitor::MultimediaSharingAccessPointID()
- {
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaConnectionMonitor::\
- MultimediaSharingAccessPointID()" )
- TUint retval = KErrNone;
- TBool profileCreated = EFalse;
- TRAPD( err, profileCreated = iSharedObj->MusAvaSip().CreateProfileL() );
- if ( err || !profileCreated )
- {
- retval = (TUint)KErrNotFound;
- }
- else
- {
- CSIPProfile* profile = iSharedObj->MusAvaSip().Profile();
- // Get IAP ID
- MUS_LOG( "mus: [MUSAVA] Get IAP ID" )
-
- TInt ret = profile->GetParameter( KSIPAccessPointId, iProfileId );
- if( ret )
- {
- MUS_LOG( "mus: [MUSAVA] IAP ID is not found" )
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::\
- MultimediaSharingAccessPointID()" )
- retval = (TUint)ret;
- }
- else
- {
- MUS_LOG1( "mus: [MUSAVA] IAP ID = %d", iProfileId )
- retval = iProfileId;
- }
- }
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaConnectionMonitor::\
- MultimediaSharingAccessPointID()" )
- return retval;
- }