browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp
branchRCL_3
changeset 94 919f36ff910f
parent 93 79859ed3eea9
equal deleted inserted replaced
93:79859ed3eea9 94:919f36ff910f
    17 *	
    17 *	
    18 *
    18 *
    19 */
    19 */
    20 
    20 
    21 
    21 
    22 
    22 #include <browser_platform_variant.hrh>
    23 #include "ConnManActiveConnector.h"
    23 #include "ConnManActiveConnector.h"
    24 #include "ConnectionManagerLogger.h"
    24 #include "ConnectionManagerLogger.h"
    25 
    25 #include <mconnection.h>
    26 #include <nifvar.h>
    26 #include <nifvar.h>
    27 #include <commdbconnpref.h>
    27 #include <CommDbConnPref.h>
       
    28 
       
    29 #ifdef BRDO_OCC_ENABLED_FF
       
    30 #include <extendedconnpref.h>
       
    31 #endif
    28 
    32 
    29 //--------------------------------------------------------------------------
    33 //--------------------------------------------------------------------------
    30 //CConnManActiveConnector::CConnManActiveConnector()
    34 //CConnManActiveConnector::CConnManActiveConnector()
    31 //--------------------------------------------------------------------------
    35 //--------------------------------------------------------------------------
    32 CConnManActiveConnector::CConnManActiveConnector( RConnection& aConnection, 
    36 CConnManActiveConnector::CConnManActiveConnector( RConnection& aConnection, 
    33                                                   TInt aPriority )
    37                                                   TInt aPriority )
    34     : CActive( aPriority )
    38     : CActive( aPriority )
    35     , iConnection( aConnection )
    39     , iConnection( aConnection )
    36 	{
    40 	{
       
    41     
    37 	CLOG_CREATE;
    42 	CLOG_CREATE;
    38 	CActiveScheduler::Add( this );//inserting this into the queue
    43 	CActiveScheduler::Add( this );//inserting this into the queue
       
    44 	occPrefs = EDefault;
    39 	}
    45 	}
    40 
    46 
    41 //--------------------------------------------------------------------------
    47 //--------------------------------------------------------------------------
    42 //CConnManActiveConnector::~CConnManActiveConnector()
    48 //CConnManActiveConnector::~CConnManActiveConnector()
    43 //--------------------------------------------------------------------------
    49 //--------------------------------------------------------------------------
    44 CConnManActiveConnector::~CConnManActiveConnector()
    50 CConnManActiveConnector::~CConnManActiveConnector()
    45 	{
    51 	{
       
    52     
    46 	Cancel();//The standard way of destroying an Active object
    53 	Cancel();//The standard way of destroying an Active object
    47 	CLOG_CLOSE;
    54 	CLOG_CLOSE;
    48 	}
    55 	}
    49 
    56 
    50 //--------------------------------------------------------------------------
    57 //--------------------------------------------------------------------------
    51 //CConnManActiveConnector::StartConnection()
    58 //CConnManActiveConnector::StartConnection()
    52 //--------------------------------------------------------------------------
    59 //--------------------------------------------------------------------------
    53 void CConnManActiveConnector::StartConnection( TCommDbConnPref* aSettings, TRequestStatus& aStatus)
    60 void CConnManActiveConnector::StartConnection( TCommDbConnPref* aSettings, TRequestStatus& aStatus)
    54 	{
    61 {
    55 	CLOG_WRITE( "CConnManActiveConnector:StartConnection is called");
    62     CLOG_WRITE( "CConnManActiveConnector:StartConnection AlwaysAsk/Ap is called");
    56 	iExternalRequestStatus = &aStatus;
    63     iExternalRequestStatus = &aStatus;
       
    64 
       
    65 #ifdef BRDO_OCC_ENABLED_FF
       
    66 
       
    67     TExtendedConnPref extPref;
       
    68     CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC parameters");
       
    69 
       
    70 #ifdef __WINS__ //This is only for emulator testing purpose
       
    71 
       
    72     //For emulator
       
    73     CLOG_WRITE( "CConnManActiveConnector:StartConnection Emulator OCC settings " );
       
    74     extPref.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
       
    75     extPref.SetConnSelectionDialog(ETrue);
       
    76     extPref.SetForcedRoaming(EFalse);
       
    77 
       
    78 #else
       
    79 
       
    80     //For hardware
       
    81     TUint32 bookmarkIap = aSettings->IapId();
       
    82     CLOG_WRITE_1( "CConnManActiveConnector:StartConnection Active Bookmark Iap: %d", bookmarkIap );
       
    83     if (bookmarkIap)
       
    84     {
       
    85        CLOG_WRITE( "CConnManActiveConnector:StartConnection Iap is found for this bookmark");
       
    86        extPref.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
       
    87        extPref.SetIapId(bookmarkIap);
       
    88     }
       
    89     else
       
    90     {
       
    91        CLOG_WRITE( "CConnManActiveConnector:StartConnection Popup ap dialog");
       
    92        extPref.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
       
    93        extPref.SetConnSelectionDialog(ETrue);
       
    94     }
       
    95 
       
    96 #endif //__WINS__   
       
    97 
       
    98     extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
       
    99     TConnPrefList prefList;
       
   100     TRAP_IGNORE(prefList.AppendL(&extPref));
       
   101 #endif //BRDO_OCC_ENABLED_FF
       
   102 
       
   103     if( aSettings )
       
   104     {
       
   105       #ifdef BRDO_OCC_ENABLED_FF
       
   106         iConnection.Start( prefList, iStatus );
       
   107       #else
       
   108         iConnection.Start( *aSettings, iStatus );
       
   109       #endif
       
   110     }
       
   111     else
       
   112         {
       
   113         iConnection.Start( iStatus );
       
   114         }
       
   115 
       
   116     SetActive();
       
   117 
       
   118 	*iExternalRequestStatus = KRequestPending;
       
   119 	}
    57 	
   120 	
       
   121 //--------------------------------------------------------------------------
       
   122 //CConnManActiveConnector::StartConnection()
       
   123 //--------------------------------------------------------------------------
       
   124 void CConnManActiveConnector::StartConnection( TConnSnapPref* aSettings, TRequestStatus& aStatus)
       
   125 {
       
   126     CLOG_WRITE( "CConnManActiveConnector:StartConnection SNAP is called");
       
   127     iExternalRequestStatus = &aStatus;
       
   128 
       
   129 #ifdef BRDO_OCC_ENABLED_FF
       
   130 
       
   131     CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC parameters");
       
   132     TExtendedConnPref extPref;
       
   133 
       
   134 #ifdef __WINS__ 
       
   135 
       
   136     //For emulator
       
   137     CLOG_WRITE( "CConnManActiveConnector:StartConnection Emulator OCC settings " );
       
   138     extPref.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
       
   139     extPref.SetConnSelectionDialog(ETrue);
       
   140     extPref.SetForcedRoaming(EFalse);
       
   141 
       
   142 #else
       
   143     
       
   144     //For hardware
       
   145     if( aSettings->Snap() == 0 )
       
   146         {
       
   147         CLOG_WRITE( "CConnManActiveConnector:StartConnection Using Internet Snap");
       
   148         extPref.SetSnapPurpose(CMManager::ESnapPurposeInternet);
       
   149         }
       
   150     else
       
   151         {
       
   152         CLOG_WRITE( "CConnManActiveConnector:StartConnection Using given Snap");
       
   153         extPref.SetSnapId(aSettings->Snap());
       
   154         }
       
   155 
       
   156 #endif //__WINS__
       
   157 
       
   158     extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
       
   159     if ( occPrefs == ESilient )
       
   160         {
       
   161         CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC Silent behaviour");
       
   162         extPref.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourConnSilent);
       
   163         }
       
   164     else
       
   165         {
       
   166         CLOG_WRITE( "CConnManActiveConnector:StartConnection Setting OCC Default behaviour");
       
   167         }
       
   168     TConnPrefList prefList;
       
   169     TRAP_IGNORE(prefList.AppendL(&extPref));
       
   170 
       
   171 #endif
       
   172 
    58     if( aSettings )
   173     if( aSettings )
    59         {
   174     {
    60 #ifdef __WINS__
   175       #ifdef BRDO_OCC_ENABLED_FF
    61      //  aSettings->SetDialogPreference( ECommDbDialogPrefPrompt );
   176         iConnection.Start( prefList, iStatus );
    62 #endif
   177       #else
    63 
   178         iConnection.Start( *aSettings, iStatus );
    64 	    iConnection.Start( *aSettings, iStatus );
   179       #endif
    65         }
   180     }
    66     else
       
    67         {
       
    68         iConnection.Start( iStatus );
       
    69         }
       
    70 
       
    71     SetActive();
       
    72 
       
    73 	*iExternalRequestStatus = KRequestPending;
       
    74 	}
       
    75 	
       
    76 //--------------------------------------------------------------------------
       
    77 //CConnManActiveConnector::StartConnection()
       
    78 //--------------------------------------------------------------------------
       
    79 void CConnManActiveConnector::StartConnection( TConnSnapPref* aSettings, TRequestStatus& aStatus)
       
    80 	{
       
    81 	CLOG_WRITE( "CConnManActiveConnector:StartConnection is called");
       
    82 	iExternalRequestStatus = &aStatus;
       
    83 	
       
    84     if( aSettings )
       
    85         {
       
    86 	    iConnection.Start( *aSettings, iStatus );
       
    87         }
       
    88     else
   181     else
    89         {
   182         {
    90         iConnection.Start( iStatus );
   183         iConnection.Start( iStatus );
    91         }
   184         }
    92 
   185 
    99 //CConnManActiveConnector::DoCancel()
   192 //CConnManActiveConnector::DoCancel()
   100 //--------------------------------------------------------------------------
   193 //--------------------------------------------------------------------------
   101 void CConnManActiveConnector::DoCancel()
   194 void CConnManActiveConnector::DoCancel()
   102 	{
   195 	{
   103 	CLOG_WRITE( "CConnManActiveConnector: DoCancel called");
   196 	CLOG_WRITE( "CConnManActiveConnector: DoCancel called");
   104 	iConnection.Close();
   197     //This is work around fix for bug ESNA-855BUN
       
   198     iConnection.Close();
   105 	User::RequestComplete( iExternalRequestStatus, KErrCancel );//completing user req
   199 	User::RequestComplete( iExternalRequestStatus, KErrCancel );//completing user req
       
   200     
   106 	CLOG_WRITE( "CConnManActiveConnector: DoCancel returned");
   201 	CLOG_WRITE( "CConnManActiveConnector: DoCancel returned");
   107 	}
   202 	}
   108 
   203 
   109 //--------------------------------------------------------------------------
   204 //--------------------------------------------------------------------------
   110 //CConnManActiveConnector::RunL()
   205 //CConnManActiveConnector::RunL()
   111 //--------------------------------------------------------------------------
   206 //--------------------------------------------------------------------------
   112 void CConnManActiveConnector::RunL()
   207 void CConnManActiveConnector::RunL()
   113 	{
   208 	{
       
   209     
   114     CLOG_WRITE_1( "CConnManAct::RunL(): %d", iStatus.Int() );
   210     CLOG_WRITE_1( "CConnManAct::RunL(): %d", iStatus.Int() );
   115 	User::RequestComplete( iExternalRequestStatus, iStatus.Int() );
   211 	User::RequestComplete( iExternalRequestStatus, iStatus.Int() );
   116 	}
   212 	}
       
   213 
       
   214 void CConnManActiveConnector::SetOccPreferences(TSetOCCPreferences aOCCPreferences)
       
   215     {
       
   216     CLOG_WRITE_1( "CConnManActiveConnector::SetOccPreferences : %d", aOCCPreferences );
       
   217     occPrefs = aOCCPreferences;
       
   218     }
   117 
   219 
   118 //------------------------------------------------------ CActiveConnectorSyncWrapper -------------------------
   220 //------------------------------------------------------ CActiveConnectorSyncWrapper -------------------------
   119 
   221 
   120 //--------------------------------------------------------------------------
   222 //--------------------------------------------------------------------------
   121 //CActiveConnectorSyncWrapper::NewL()
   223 //CActiveConnectorSyncWrapper::NewL()
   194 //--------------------------------------------------------------------------
   296 //--------------------------------------------------------------------------
   195 void CActiveConnectorSyncWrapper::DoCancel()
   297 void CActiveConnectorSyncWrapper::DoCancel()
   196 	{
   298 	{
   197     
   299     
   198     iActiveConnector->Cancel();
   300     iActiveConnector->Cancel();
   199 	
   301    	if(iWait.IsStarted())
   200 	if(iWait.IsStarted())
   302 	{
   201 	  {
   303 	  iWait.AsyncStop();	
   202 	   iWait.AsyncStop();	
   304 	}
   203 	  }
       
   204 	
   305 	
   205 	}
   306 	}
   206 
   307 
   207 //--------------------------------------------------------------------------
   308 //--------------------------------------------------------------------------
   208 //CActiveConnectorSyncWrapper::ConstructL()
   309 //CActiveConnectorSyncWrapper::ConstructL()
   220 CActiveConnectorSyncWrapper::CActiveConnectorSyncWrapper( TInt aPriority ): CActive( aPriority )
   321 CActiveConnectorSyncWrapper::CActiveConnectorSyncWrapper( TInt aPriority ): CActive( aPriority )
   221 	{
   322 	{
   222 	CActiveScheduler::Add( this );
   323 	CActiveScheduler::Add( this );
   223 	}
   324 	}
   224 
   325 
   225 
   326 void CActiveConnectorSyncWrapper::SetOccPreferences(TSetOCCPreferences aOCCPreferences)
       
   327     {
       
   328     if ( iActiveConnector )
       
   329         iActiveConnector->SetOccPreferences(aOCCPreferences);
       
   330     }
   226 //EOF
   331 //EOF