videoconnutility/connutility/src/vcxconnutilengine.cpp
branchRCL_3
changeset 47 826cea16efd9
parent 45 798ee5f1972c
child 48 13a33d82ad98
--- a/videoconnutility/connutility/src/vcxconnutilengine.cpp	Thu Aug 19 10:54:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,759 +0,0 @@
-/*
-* Copyright (c) 2006 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: 
-*
-*/
-
-
-
-
-#include <mpxlog.h>
-#include <commdb.h>
-#include <basched.h>
-#include <cmmanagerext.h>
-#include <extendedconnpref.h>
-
-#include "vcxconnutilextengineobserver.h"
-#include "vcxconnutilengine.h"
-
-// CONSTANTS
-_LIT( KCommDBIapId, "IAP\\Id" );
-
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::NewL()
-// -----------------------------------------------------------------------------
-//
-CVcxConnUtilEngine* CVcxConnUtilEngine::NewL( MConnUtilExtEngineObserver* aObserver )
-    {
-    CVcxConnUtilEngine* self = CVcxConnUtilEngine::NewLC( aObserver );  
-    CleanupStack::Pop( self ); // self;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::NewLC()
-// -----------------------------------------------------------------------------
-//
-CVcxConnUtilEngine* CVcxConnUtilEngine::NewLC( MConnUtilExtEngineObserver* aObserver )
-    {
-    CVcxConnUtilEngine* self = new (ELeave) CVcxConnUtilEngine();
-    CleanupStack::PushL( self );
-    self->iObserver = aObserver;
-    self->ConstructL();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::CVcxNsConnUtilEngine()
-// -----------------------------------------------------------------------------
-//
-CVcxConnUtilEngine::CVcxConnUtilEngine( ) : 
-    CActive( EPriorityStandard ),     
-    iConnectionState( EVCxNotConnected )
-    {
-    CActiveScheduler::Add( this );
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::ConstructL()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::ConstructL()
-    {
-    MPX_DEBUG1("vcxconnutil  ## CVcxConnUtilEngine::ConstructL() in");
-       
-    iCmManagerExt.OpenL();
-        
-    User::LeaveIfError( iSocketServer.Connect() );
-           
-    User::LeaveIfError( iConnectionMonitor.ConnectL() );    
-    
-    User::LeaveIfError( iConnectionMonitor.NotifyEventL( *this ) );
-        
-    // get all destination ids
-    iCmManagerExt.AllDestinationsL( iDestinationArray );
-    
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::ConstructL() out" ); 
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::~CVcxNsConnUtilEngine()
-// -----------------------------------------------------------------------------
-//
-CVcxConnUtilEngine::~CVcxConnUtilEngine()
-    {
-    
-    if( iMobility )
-        {
-        // make sure observers are not being called
-        // after receiving Error() from Cancel()
-        iConnectionState = EVCxDisconnecting;
-        iMobility->Cancel();
-        delete iMobility;
-        }
-    
-    if( IsActive() )
-        {
-        Cancel();
-        }
-    
-    iConnection.Close();
-        
-    iSocketServer.Close();
-      
-    iCmManagerExt.Close();
-    
-    iConnectionMonitor.Close();
-       
-    delete iDestinationName;
-    
-    iDestinationArray.Close();
-   
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::StartToConnect()
-// -----------------------------------------------------------------------------
-//
-TInt CVcxConnUtilEngine::StartToConnect( TConnPref& aPref, TBool aConnAsync )
-    {
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::StartToConnect with TConnSnapPref in" );
-        
-    TInt err( KErrNone );
-    if( EVCxConnected == iConnectionState  ||
-        EVCxConnecting == iConnectionState )
-        {
-        return err;
-        }
-    iConnectionState = EVCxConnecting;  
-    err = iConnection.Open( iSocketServer );
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::StartToConnect connection opened" );
-    if( err != KErrNone )
-        {
-        return err;
-        }   
-
-    if( !IsActive() )
-        {
-        if( aConnAsync )
-            {
-            MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::StartToConnect connecting async" );
-            
-            iConnection.Start( aPref, iStatus );
-            SetActive();
-            TRAP( err, iObserver->WaitL( EVCxPSConnectionStatus ) );
-            if( err == KErrNone )
-                {
-                // save possible error code from async 
-                // connection creation
-                err = iConnectingResult;
-                }
-            else if( err == KLeaveExit )
-                {
-                // app is closing, active scheduler is about to be closed.
-                // cancel connection waiting.
-                if( IsActive() )
-                    {
-                    Cancel();
-                    }
-                }
-            }
-        else
-            {
-            MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::StartToConnect connecting sync" );
-            err = iConnection.Start();
-            if( err == KErrNone )
-                {
-                iConnectionState = EVCxConnected;
-                }
-            }
-        }
-    
-    if( iConnectionState != EVCxConnected )
-        {
-        iIapId = 0;
-        }
-
-    MPX_DEBUG2( "vcxconnutil  ## CVcxConnUtilEngine::StartToConnect with TConnSnapPref err: %d  out", err );
-    return err;  
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::CreateMobility()
-// -----------------------------------------------------------------------------
-//
-TInt CVcxConnUtilEngine::CreateMobility()
-    {
-    TInt err( KErrNone );
-    if( iMobility )
-        {
-        iMobility->Cancel();        
-        delete iMobility;
-        iMobility = 0;
-        }
-    if( !iMobility  )
-        {        
-        TRAP( err, iMobility = CActiveCommsMobilityApiExt::NewL( iConnection, *this ) );
-        }
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::Disconnect()
-// -----------------------------------------------------------------------------
-//
-void  CVcxConnUtilEngine::Disconnect()
-    {
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::Disconnect in");
-    if( iConnectionState != EVCxNotConnected )
-        { 
-        MPX_DEBUG1( "CVcxConnUtilEngine::Disconnect closing connection");
-        iConnectionState = EVCxDisconnecting;
-        if( iMobility )
-            {
-            iMobility->Cancel();
-            delete iMobility;
-            iMobility = NULL;
-            }               
-
-        iConnection.Close();
-        iConnectionState = EVCxNotConnected;
-        
-        }      
-    if( IsActive() )
-        {
-        Cancel();
-        }
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::Disconnect out");
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::PreferredCarrierAvailable()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::PreferredCarrierAvailable( TAccessPointInfo aOldAPInfo ,
-                                                      TAccessPointInfo aNewAPInfo,
-                                                      TBool /*aIsUpgrade*/,
-                                                      TBool aIsSeamless )
-    {
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::PreferredCarrierAvailable in");
-    MPX_DEBUG2( "PreferredCarrierAvailable oldiap: %d", aOldAPInfo.AccessPoint() );
-    MPX_DEBUG2( "PreferredCarrierAvailable newiap: %d", aNewAPInfo.AccessPoint() );
-    MPX_DEBUG2( "PreferredCarrierAvailable seamless: %d", aIsSeamless );
-    
-    
-    if ( !aIsSeamless && 
-         aOldAPInfo.AccessPoint() > 0 &&
-         aOldAPInfo.AccessPoint() != aNewAPInfo.AccessPoint() )             
-        {                
-        if( iConnectionState == EVCxRoamingAccepted )
-            {
-            // in this case we have a roaming ongoing at the
-            // but we have not yet received NewCarrierActive
-            // so networking has found yet better usable iap.
-            // since everyone have allready accepted roaming we
-            // can migrate it right away
-            MPX_DEBUG1( "CVcxConnUtilEngine::PreferredCarrierAvailable  migrated due EVCxRoamingAccepted state" ); 
-            iMobility->MigrateToPreferredCarrier();
-            }
-        else if( iConnectionState != EVCxRoamingRequest )
-            {
-            TBool allowRoam( EFalse );
-            iConnectionState = EVCxRoamingRequest;
-            
-            TRAPD( err, allowRoam = iObserver->RequestIsRoamingAllowedL() );
-            
-            // there is a possibility, that client has disconnected during request
-            // in that case, do nothing
-            if( iConnectionState == EVCxNotConnected )
-                {                
-                return;
-                }
-            
-            if( err == KErrNone && allowRoam )
-                {
-            
-                MPX_DEBUG1( "CVcxConnUtilEngine::PreferredCarrierAvailable migrated" ); 
-  
-                iMobility->MigrateToPreferredCarrier();
-                iConnectionState = EVCxRoamingAccepted;
-                }
-            else
-                {
-                MPX_DEBUG1( "CVcxConnUtilEngine::PreferredCarrierAvailable ignored" );
-                iMobility->IgnorePreferredCarrier();
-                iConnectionState = EVCxConnected;
-                // reset IAP / SNAP info to the pubsub
-                TRAPD( err, iObserver->IapChangedL() );
-                if( err != KErrNone )
-                    {
-                    // internal error, let's try to resolve connection
-                    iConnectionState = EVCxError;
-                    TRAP( err, iObserver->IapChangedL() );                    
-                    }
-                }
-            }
-       else
-            {
-            MPX_DEBUG1( "CVcxConnUtilEngine::PreferredCarrierAvailable Allready roaming" ); 
-            }
-        }
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::PreferredCarrierAvailable out" );
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::NewCarrierActive()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::NewCarrierActive( TAccessPointInfo /*aNewAPInfo*/, TBool aIsSeamless )
-    {
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::NewCarrierActive in");
-     
-    if ( aIsSeamless )
-        {
-        // It is Seamless. E.g. Mobile IP enabled.
-        MPX_DEBUG1( "CVcxConnUtilEngine::NewCarrierActive seamless");
-        iConnectionState = EVCxConnected;
-        }
-    else
-        {
-        MPX_DEBUG1( "CVcxConnUtilEngine::NewCarrierActive accepting new carrier");
-         
-        // We accept the new IAP / SNAP.
-        iMobility->NewCarrierAccepted();
-        iConnectionState = EVCxConnected;
-        // change new IAP / SNAP info to the pubsub
-        TRAPD( err, iObserver->IapChangedL() );
-        if( err != KErrNone )
-            {                    
-            // internal error, let's try to resolve connection
-            iMobility->NewCarrierRejected();
-            iConnectionState = EVCxError;
-            TRAP( err, iObserver->IapChangedL() ); 
-            }
-        }
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::NewCarrierActive out" );
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::EventL()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::EventL( const CConnMonEventBase &aConnMonEvent )
-    {
-    TInt eventType = aConnMonEvent.EventType();
-        
-    TInt connectionId = aConnMonEvent.ConnectionId();
-
-    // for other events:
-    // if not master instance or event does not concern
-    // current connection or we are not connected, do not 
-    // need to handle events 
-    if( !iObserver->IsMaster() || 
-        connectionId != iCurrentConnectionId ||
-        iConnectionState != EVCxConnected )
-        {
-        return;
-        }
-  
-    switch(eventType)
-        {               
-        case EConnMonConnectionStatusChange:
-            {     
-            const CConnMonConnectionStatusChange* event = 
-                            static_cast<const CConnMonConnectionStatusChange*>( &aConnMonEvent );
-
-            if( event->ConnectionStatus() == KLinkLayerClosed )
-                {
-                MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::EventL: KLinkLayerClosed ");
-                iObserver->IapChangedL();
-                }                
-            }
-            break;
-        case EConnMonDeleteConnection:
-            {
-            iObserver->IapChangedL();
-            }
-            break;
-        default:
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::Error()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::Error( TInt aError  )
-    {
-    MPX_DEBUG2( "vcxconnutil  ## CVcxConnUtilEngine::Error %d in", aError );
-    if( aError != KErrNone )
-        {
-        // Error method is also called, when we call Cancel -method for iMobility
-        // during disconnecting or during deallocation. Those are not concidered
-        // as "errors" in the connection utility, so they do not require any
-        // further handling
-        if( iConnectionState != EVCxDisconnecting )
-            {
-            iConnectionState = EVCxError;
-            TRAP_IGNORE( iObserver->IapChangedL() ); 
-            }
-        
-        }
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::Error out" );
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::GetCmmDestinationIdL()
-// -----------------------------------------------------------------------------
-//
-TUint32 CVcxConnUtilEngine::GetCmmDestinationIdL( CMManager::TSnapPurpose aPurpose )
-    {
-    TUint32 destinationId( 0 );
-    // get default destination id
-    TCmDefConnValue defConnection;
-    iCmManagerExt.ReadDefConnL( defConnection );
-
-    // if default is setted to be destination, get it's ID         
-    if( defConnection.iType == ECmDefConnDestination && 
-        aPurpose == CMManager::ESnapPurposeUnknown )
-        {
-        destinationId = defConnection.iId;
-        }
-    else if( defConnection.iType == ECmDefConnConnectionMethod ||
-             aPurpose != CMManager::ESnapPurposeUnknown )
-        {
-        // default connection is connection method,
-        // search for the destination of it
-        RArray<TUint32> destinations;
-        CleanupClosePushL( destinations );            
-        iCmManagerExt.AllDestinationsL(destinations);
-            
-        RCmDestinationExt destination;
-        RCmConnectionMethodExt connectionMethod;
-        TInt exists( KErrNotFound );
-        TInt count = destinations.Count();
-        for( TInt i = 0; i < count && exists != KErrNone; i++ )
-            {
-            destination = iCmManagerExt.DestinationL( destinations[ i ] );
-            CleanupClosePushL( destination ); 
-            
-            // look for default destination id
-            if( aPurpose == CMManager::ESnapPurposeUnknown )
-                {
-                // check if connection method belongs to destination
-                TRAP( exists, 
-                  connectionMethod = destination.ConnectionMethodByIDL( 
-                                                           defConnection.iId ) );
-                if( exists == KErrNone )
-                    {
-                    connectionMethod.Close();
-                    // correct destination found
-                    destinationId = destination.Id();                   
-                    }                
-                }  
-            // look for destination id based on purpose
-            else
-                {
-                if( destination.MetadataL( CMManager::ESnapMetadataPurpose ) == 
-                                            aPurpose )
-                    {
-                    // found, save destination id and end search
-                    destinationId =  destination.Id();
-                    exists = KErrNone;
-                    }
-                }
-            CleanupStack::PopAndDestroy( &destination ); 
-            }
-        CleanupStack::PopAndDestroy( &destinations );
-        }
-    return destinationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::PrepareConnectionDetailsL()
-// -----------------------------------------------------------------------------
-//
-TBool CVcxConnUtilEngine::PrepareConnectionDetailsL( TInt aDestinationID )
-    {
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::PrepareConnectionDetailsL in");
-    TBool connectionOk( EFalse );
-    
-    ResetConnectionInfo();
- 
-    if( aDestinationID )
-        {
-     
-        MPX_DEBUG2( "CVcxConnUtilEngine::PrepareConnectionDetailsL destinationID: %d", aDestinationID);
-        iDestinationId = aDestinationID;
-        RCmDestinationExt destination = iCmManagerExt.DestinationL( aDestinationID );
-        CleanupClosePushL(destination);
-        
-        iDestinationName = destination.NameLC();        
-        CleanupStack::Pop( iDestinationName );
-        
-        MPX_DEBUG2( "CVcxConnUtilEngine::PrepareConnectionDetailsL destination name: %S", iDestinationName);
-                
-        TInt cmCount = destination.ConnectionMethodCount();
-        MPX_DEBUG2( "CVcxConnUtilEngine::PrepareConnectionDetailsL method count: %d", cmCount);
-        if( cmCount )
-            {
-            connectionOk = ETrue;
-            }
-        CleanupStack::PopAndDestroy( &destination );
-        }
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::PrepareConnectionDetailsL out");
-    return connectionOk;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::IsIapConnected()
-// -----------------------------------------------------------------------------
-//
-TBool CVcxConnUtilEngine::IsIapConnected( TUint32 aIapId )
-    {  
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::IsIapConnected in");
-    TBool connected( EFalse );
-    TRAPD( err, connected = 
-      iCmManagerExt.GetConnectionMethodInfoBoolL( aIapId, CMManager::ECmConnected ) )
-    
-    if( err != KErrNone )
-        {
-        connected = EFalse;
-        }
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::IsIapConnected out");
-    return connected;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::FillActiveConnectionDetailsL()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::FillActiveConnectionDetailsL() 
-    {
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::FillActiveConnectionDetailsL in");
-    // fill in connection information from the latest connection
-    TRequestStatus status;
-    TUint connectionCount(0);    
-    iConnectionMonitor.GetConnectionCount(connectionCount, status);
-    User::WaitForRequest( status );
-    User::LeaveIfError(status.Int());
-             
-    if (connectionCount)
-        {
-        // fill in IAP Id
-        iConnection.GetIntSetting( KCommDBIapId, iIapId );       
-        MPX_DEBUG2( "CVcxConnUtilEngine::FillActiveConnectionDetailsL iap id: %d", iIapId );
-        
-        // get current connection id
-        TBool found( EFalse );
-        TUint subConnCount( 0 );
-        for ( TInt i ( 1 ); i <= connectionCount && !found; i ++ )
-            {
-            TUint connectionId; 
-            User::LeaveIfError( iConnectionMonitor.GetConnectionInfo( i, 
-                                                                      connectionId, 
-                                                                      subConnCount ) );          
-            TUint iapIdToCheck;                                              
-            iConnectionMonitor.GetUintAttribute( 
-                                connectionId, 0, KIAPId, iapIdToCheck, status );
-            // Note: Codescanner generates here pointless warning. We need to get data synchronously.
-            User::WaitForRequest ( status ); 
-            User::LeaveIfError( status.Int() );
-            
-            if ( iapIdToCheck == iIapId ) 
-                { 
-                // found 
-                iCurrentConnectionId = connectionId; 
-                found = ETrue;
-                }                
-            }
-                      
-        if( !iDestinationId )
-            {
-            // try to fill destination info if not yet gotten
-            FillDestinationInfoL();
-            }     
-        }  
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::FillActiveConnectionDetailsL out");
-    }
-  
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::IapId()
-// -----------------------------------------------------------------------------
-//
-TUint32 CVcxConnUtilEngine::IapId() const
-    {
-    MPX_DEBUG2( "vcxconnutil  ## CVcxConnUtilEngine::IapId %d", iIapId );
-
-    return iIapId;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::DestinationId()
-// -----------------------------------------------------------------------------
-//
-TInt CVcxConnUtilEngine::DestinationId() const
-    {
-    return iDestinationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::ConnectionStatus()
-// -----------------------------------------------------------------------------
-//
-TVCxConnectionStatus CVcxConnUtilEngine::ConnectionStatus() const
-    {
-    MPX_DEBUG2( "vcxconnutil  ## CVcxConnUtilEngine::ConnectionStatus %d", iConnectionState );
-    return iConnectionState;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::SetConnectionStatus()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::SetConnectionStatus( TVCxConnectionStatus aStatus )
-    {
-    iConnectionState = aStatus;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::DestinationName()
-// -----------------------------------------------------------------------------
-//
-TPtrC CVcxConnUtilEngine::DestinationName() const
-    {
-    if ( iDestinationName )
-        {
-        return iDestinationName->Des();
-        } 
-    return TPtrC();
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::ResetConnectionInfo()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::ResetConnectionInfo()
-    {
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::ResetConnectionInfo in");
-    iIapId = 0;
-    delete iDestinationName;
-    iDestinationName = 0;
-    iDestinationId = 0;
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::ResetConnectionInfo out");
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::FillDestinationInfoL()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::FillDestinationInfoL( )
-    {
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::FillDestinationInfoL in");
-    TInt count = iDestinationArray.Count();
-    delete iDestinationName;
-    iDestinationName = 0;
-    iDestinationId = 0;
-    
-    TBool found( EFalse );
-    for( TUint destIndex = 0; destIndex < count && !found; ++destIndex )
-        {
-        RCmDestinationExt destination = 
-            iCmManagerExt.DestinationL( iDestinationArray[ destIndex ] );
-        
-        CleanupClosePushL( destination );
-        TInt cmCount = destination.ConnectionMethodCount();
-
-        for ( TUint methIndex = 0; methIndex < cmCount && !found; ++methIndex )
-            {
-            RCmConnectionMethodExt connectionMethod = destination.ConnectionMethodL( methIndex );
-            CleanupClosePushL( connectionMethod );
-            if( iIapId == connectionMethod.GetIntAttributeL( CMManager::ECmIapId ) )
-                {
-                // found, save data
-                iDestinationId = iDestinationArray[ destIndex ];
-                MPX_DEBUG2( "CVcxConnUtilEngine::FillDestinationInfoL destination found: %d", iDestinationId );
-                iDestinationName = destination.NameLC();                
-                CleanupStack::Pop( iDestinationName );
-                found = ETrue;
-                MPX_DEBUG2( "CVcxConnUtilEngine::FillDestinationInfoL snap name: %S", iDestinationName );
-                }
-            CleanupStack::PopAndDestroy( &connectionMethod );
-            }
-        CleanupStack::PopAndDestroy( &destination );
-        }
-    MPX_DEBUG1( "vcxconnutil  ## CVcxConnUtilEngine::FillDestinationInfoL out");
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::DoCancel()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::DoCancel()
-    {
-   
-    if( iConnectionState == EVCxConnecting )
-        {
-        MPX_FUNC( "CVcxConnUtilEngine::DoCancel disconnect");
-        Disconnect();
-        }
-    iConnectingResult = KErrCancel;
-    iObserver->EndWait( EVCxPSConnectionStatus );
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::RunL()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::RunL()
-    {
-    if ( iStatus.Int() != KErrNone )
-        {
-        iConnectingResult = iStatus.Int();
-        iConnectionState = EVCxNotConnected;
-        }
-    else
-        {
-        iConnectingResult = KErrNone;
-        if( iConnectionState == EVCxConnecting )
-            {                            
-            iConnectionState = EVCxConnected;
-            }
-        }
-    iObserver->EndWait( EVCxPSConnectionStatus );
-       
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::QueryConn()
-// -----------------------------------------------------------------------------
-//
-TBool CVcxConnUtilEngine::QueryConn()
-    {
-    return iQueryConn;
-    }
-
-// -----------------------------------------------------------------------------
-// CVcxConnUtilEngine::SetQueryConn()
-// -----------------------------------------------------------------------------
-//
-void CVcxConnUtilEngine::SetQueryConn( TBool aQueryConn )
-    {
-    iQueryConn = aQueryConn;
-    }
-
-//  End of File