--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/nettools/conntest/src/ConnTestView.cpp Thu Dec 17 08:39:25 2009 +0200
@@ -0,0 +1,1316 @@
+/*
+* Copyright (c) 2006-2009 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: The view class for ConnTest
+* Implements command handling, menu initializing and view activation
+*
+*/
+
+// INCLUDE FILES
+#include <aknViewAppUi.h>
+#include <akntitle.h>
+#include <avkon.hrh>
+#include <AknGlobalNote.h>
+
+#include <ConnTest.rsg>
+#include "ConnTestView.h"
+#include "ConnTestContainer.h"
+#include "CustomPrefsItemList.h"
+#include "CustomPrefsData.h"
+#include "SettingItemList.h"
+#include "SettingData.h"
+#include "SocketsEngine.h"
+#include "Utils.h"
+#include <wlanmgmtclient.h>
+#include "ConnTestAppUi.h"
+
+
+// CONSTANTS
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+
+// ---------------------------------------------------------
+// CConnTestView::CConnTestView(const TUid aViewId)
+// Constructor
+// ---------------------------------------------------------
+//
+CConnTestView::CConnTestView(const TUid aViewId)
+ : iViewId(aViewId), iWaiter( NULL )
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::CConnTestView( aViewId )"));
+ }
+
+// ---------------------------------------------------------
+// CConnTestView::CConnTestView(const TUid aViewId,
+// CSettingData* aSettings,
+// CCustomPrefsData* aCustomPrefs)
+// Constructor
+// ---------------------------------------------------------
+//
+CConnTestView::CConnTestView(const TUid aViewId, CSettingData* aSettings, CCustomPrefsData* aCustomPrefs)
+ : iViewId(aViewId), iSettingData(aSettings), iCustomPrefsData(aCustomPrefs), iWaiter( NULL )
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::CConnTestView( aViewId, aSettings, aCustomPrefs )"));
+ }
+
+// ---------------------------------------------------------
+// CConnTestView::ConstructL()
+// EPOC two-phased constructor
+// ---------------------------------------------------------
+//
+void CConnTestView::ConstructL()
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::ConstructL"));
+ BaseConstructL( R_CONNTEST_VIEW1 );
+ iSendData = HBufC8::NewL(KMaxSendBuffer);
+ RDebug::Print(_L("ConnTest: CConnTestView::ConstructL iWlanMgmtClient"));
+ TRAPD(err,iWlanMgmtClient = CWlanMgmtClient::NewL());
+ if (err == KErrNone)
+ {
+ iSupportsWlan = ETrue;
+ }
+ else
+ {
+ iSupportsWlan = EFalse;
+ }
+ }
+
+// ---------------------------------------------------------
+// CConnTestView::~CConnTestView()
+// Destructor
+// ---------------------------------------------------------
+//
+CConnTestView::~CConnTestView()
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::~CConnTestView"));
+ if ( iContainer )
+ {
+ AppUi()->RemoveFromViewStack( *this, iContainer );
+ }
+
+ delete iSocketsEngine;
+ delete iContainer;
+ delete iSettingsListBox;
+ delete iCustomPrefsListBox;
+ // delete iSettingData; owned now by CConnTestDocument
+ if(iSendData)
+ {
+ delete iSendData;
+ iSendData = NULL;
+
+ if ( iSupportsWlan && iWlanMgmtClient )
+ {
+ iWlanMgmtClient->CancelNotifications();
+ delete iWlanMgmtClient;
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// TUid CConnTestView::Id()
+// Return id of this view instance
+// ---------------------------------------------------------
+//
+TUid CConnTestView::Id() const
+ {
+ //return KViewId;
+ return iViewId;
+ }
+
+// ---------------------------------------------------------
+// CConnTestView::HandleCommandL(TInt aCommand)
+// Command handler
+// ---------------------------------------------------------
+//
+void CConnTestView::HandleCommandL(TInt aCommand)
+ {
+ switch ( aCommand )
+ {
+ case EAknSoftkeyExit:
+ iSocketsEngine->Cancel();
+ AppUi()->HandleCommandL(EEikCmdExit);
+ break;
+
+ case EAknSoftkeyOk:
+ case EAknSoftkeyBack:
+ // Same actions for OK and Back keys. These are called
+ // from settings or Ext Connection Preferences view.
+ if (iActiveContainer == ESettingsContainer)
+ {
+ // Store settings and update the values
+ // in socket engine.
+ iSettingsListBox->StoreSettingsL();
+ iSocketsEngine->SetConnectionData(iSettingData);
+ }
+ else // ECustomPrefsContainer
+ {
+ // Store the custom preferences and update the values
+ // in socket engine.
+ iCustomPrefsListBox->StoreSettingsL();
+ iSocketsEngine->SetCustomPrefsData(iCustomPrefsData);
+ }
+ SwapContainerL(EOutputContainer);
+ break;
+
+ case EConnTestCmdStartInterface:
+ // Start the interface
+ iSocketsEngine->StartInterfaceL(CSocketsEngine::EAskIap);
+ break;
+
+ case EConnTestCmdStartSnap:
+ //start connection with snap
+ iSocketsEngine->StartConnWithSnapL();
+ break;
+
+ case EConnTestCmdStartInterfaceExtConnPrefs:
+ // Start the interface using Extended Connection Preferences
+ RDebug::Print(_L("ConnTest: Start ExtConnPrefs"));
+ iSocketsEngine->StartInterfaceL(CSocketsEngine::EExtPrefs);
+ break;
+
+ case EConnTestCmdStartInternet:
+ // Start the interface using Extended Connection Preferences
+ RDebug::Print(_L("ConnTest: Start Internet"));
+ iSocketsEngine->StartInterfaceL(CSocketsEngine::EExtPrefsInternet);
+ break;
+
+ case EConnTestCmdStartInterfaceNoPrefs:
+ // Start the interface
+ iSocketsEngine->StartInterfaceL(CSocketsEngine::ENoPrefs);
+ break;
+
+ case EConnTestCmdStartByNetworkId:
+ // Start the interface with network id
+ iSocketsEngine->StartInterfaceL(CSocketsEngine::ENetworkId);
+ break;
+
+ case EConnTestCmdStopInterface:
+ // Stop the interface with RConnection::Stop
+ iSocketsEngine->StopInterfaceL();
+ break;
+
+ case EConnTestCmdStartForClose:
+ // Stop the interface with RConnection::Close
+ iSocketsEngine->StartCloseInterfaceL();
+ break;
+
+ case EConnTestCmdCloseInterface:
+ // Stop the interface with RConnection::Close
+ iSocketsEngine->CloseInterface();
+ break;
+
+ case EConnTestCmdConnectionInfo:
+ // Print information about the active connections
+ iSocketsEngine->ConnectionInfoL();
+ break;
+
+ case EConnTestCmdInterfaceInfo:
+ // Print information about interfaces. Show wait note here,
+ // because this usually takes a while.
+ {
+ TInt permanentNoteId;
+ CAknGlobalNote* globalNote = CAknGlobalNote::NewL();
+ CleanupStack::PushL(globalNote);
+ globalNote->SetSoftkeys(R_AVKON_SOFTKEYS_EMPTY);
+ permanentNoteId = globalNote->ShowNoteL( EAknGlobalWaitNote, _L("Fetching information...") );
+
+ iSocketsEngine->InterfaceInfoL();
+
+ globalNote->CancelNoteL(permanentNoteId);
+ CleanupStack::PopAndDestroy(globalNote); // globalNote
+ }
+ break;
+
+ case EConnTestCmdClearOutputWindow:
+ // Clear the output window
+ iContainer->ClearOutputWindow();
+ break;
+
+ case EConnTestCmdSettings:
+ // Display settings list
+ SwapContainerL(ESettingsContainer);
+ break;
+
+ case EConnTestCmdSetCustomPrefs:
+ // Display Custom Preferences list
+ SwapContainerL(ECustomPrefsContainer);
+ break;
+
+ case EConnTestCmdMigrate:
+ iSocketsEngine->Migrate();
+ break;
+ case EConnTestCmdIgnore:
+ iSocketsEngine->Ignore();
+ break;
+ case EConnTestCmdAccept:
+ iSocketsEngine->AcceptCarrier();
+ break;
+ case EConnTestCmdReject:
+ iSocketsEngine->RejectCarrier();
+ break;
+ case EConnTestCmdConnect:
+ // Connect the socket
+ iSocketsEngine->ConnectL();
+ break;
+
+ case EConnTestCmdDisconnect:
+ // Disconnect the socket but do not stop the interface
+ iSocketsEngine->Disconnect();
+ break;
+
+ case EConnTestCmdListen:
+ // Create TCP socket that listens and receives raw TCP data
+ iSocketsEngine->ListenL();
+ break;
+
+ case EConnTestCmdSendHttpGet:
+ {
+ // Send HTTP Get
+ iSocketsEngine->SendHttpRequestOverSocketL(EFalse, EFalse);
+ }
+ break;
+
+ case EConnTestCmdSendPerformanceHttpGet:
+ {
+ // Send HTTP Get
+ if (iSocketsEngine->GetSocketEngineState() == CSocketsEngine::EConnected)
+ {
+ iSocketsEngine->SendHttpRequestOverSocketL(EFalse, ETrue);
+ }
+ }
+ break;
+
+ case EConnTestCmdSendHttpPost:
+ {
+ // Send HTTP Post
+ iSocketsEngine->SendHttpRequestOverSocketL(ETrue, ETrue);
+ }
+ break;
+
+ case EConnTestCmdSendRawData:
+ // Send datagrams
+ CreateDataPacket();
+ SendDataL();
+ break;
+
+ case EConnTestCmdHttpFrameworkGet:
+ // Send HTTP request (for testing the HTTP framework)
+ iSocketsEngine->SendHttpFrameworkRequestL(EFalse, EFalse, EFalse);
+ break;
+
+ case EConnTestCmdHttpFrameworkPost:
+ // Send HTTP request (for testing the HTTP framework)
+ iSocketsEngine->SendHttpFrameworkRequestL(ETrue, EFalse, EFalse);
+ break;
+
+ case EConnTestCmdHttpFrameworkSecureGet:
+ // Send HTTP request (for testing the HTTP framework)
+ iSocketsEngine->SendHttpFrameworkRequestL(EFalse, EFalse, ETrue);
+ break;
+
+ case EConnTestCmdHttpFrameworkPerformanceGet:
+ // Send HTTP request (for testing the HTTP framework)
+ iSocketsEngine->SendHttpFrameworkRequestL(EFalse, ETrue, EFalse);
+ break;
+
+ case EConnTestCmdHttpFrameworkPerformancePost:
+ // Send HTTP request (for testing the HTTP framework)
+ iSocketsEngine->SendHttpFrameworkRequestL(ETrue, ETrue, EFalse);
+ break;
+
+ case EConnTestCmdCancel:
+ // Cancel ongoing operation
+ iSocketsEngine->Cancel();
+ break;
+
+ case EConnTestCmdConnectionPrefsIap:
+ // Write IapId value to ConnectionPreferences table
+ TRAPD(err, Utils::SetConnectionPrefsIapL());
+ if(err)
+ {
+ if(err == KErrNotFound)
+ {
+ iContainer->ErrorNotify(_L("Non-existing id"), err);
+ }
+ else
+ {
+ iContainer->ErrorNotify(_L("Setting id failed"), err);
+ }
+ }
+ break;
+
+ case EConnTestCmdTimeoutLastSocketActivity:
+ // Set LastSocketActivity
+ TRAPD(err2, Utils::SetTimeoutsL(EConnTestCmdTimeoutLastSocketActivity));
+ if(err2)
+ {
+ iContainer->ErrorNotify(_L("Failed to set timer"), err2);
+ }
+ break;
+
+ case EConnTestCmdTimeoutLastSocketClosed:
+ // Set LastSocketClosed
+ TRAPD(err3, Utils::SetTimeoutsL(EConnTestCmdTimeoutLastSocketClosed));
+ if(err3)
+ {
+ iContainer->ErrorNotify(_L("Failed to set timer"), err3);
+ }
+ break;
+
+ case EConnTestCmdTimeoutLastSessionClosed:
+ // Set LastSessionClosed
+ TRAP(err, Utils::SetTimeoutsL(EConnTestCmdTimeoutLastSessionClosed));
+ if(err)
+ {
+ iContainer->ErrorNotify(_L("Failed to set timer"), err);
+ }
+ break;
+
+ case EConnTestCmdWLANQoSVoice:
+ iSocketsEngine->SetWLANQoS(7);
+ break;
+
+ case EConnTestCmdWLANQoSVideo:
+ iSocketsEngine->SetWLANQoS(5);
+ break;
+
+ case EConnTestCmdWLANQoSBestEffort:
+ iSocketsEngine->SetWLANQoS(3);
+ break;
+
+ case EConnTestCmdWLANQoSBackground:
+ iSocketsEngine->SetWLANQoS(1);
+ break;
+
+ case EConnTestCmdWLANQoSNone:
+ iSocketsEngine->SetWLANQoS(0);
+ break;
+
+
+ //
+ // WLAN COMMANDS
+ //
+ case EConnTestWlanAvailableIaps:
+ {
+ if (!iSupportsWlan) { iContainer->PrintNotify(_L("WLAN not supported\n")); break; }
+ iWaiter = new (ELeave) CConnTestViewWaiter( iWlanMgmtClient, *this, EConnTestWaitTypeAvailableIaps );
+ iWaiter->ConstructL();
+ iWaiter->IssueRequest();
+ }
+ break;
+
+ case EConnTestWlanScan:
+ {
+ if (!iSupportsWlan) { iContainer->PrintNotify(_L("WLAN not supported\n")); break; }
+ iWaiter = new (ELeave) CConnTestViewWaiter( iWlanMgmtClient, *this, EConnTestWaitTypeScan );
+ iWaiter->ConstructL();
+ iWaiter->IssueRequest();
+ }
+ break;
+
+ case EConnTestWlanGetSsid:
+ {
+ if (!iSupportsWlan) { iContainer->PrintNotify(_L("WLAN not supported\n")); break; }
+ TWlanSsid ssid;
+ TInt ret = iWlanMgmtClient->GetConnectionSsid( ssid );
+ if( ret )
+ {
+ RDebug::Print( _L( "ConnTest: Error: %d" ), ret );
+ break;
+ }
+
+ RDebug::Print( _L( "ConnTest: SSID = %S" ), &ssid );
+
+ TBuf8<64> text;
+ text.Append(_L8("SSID: "));
+ text.Append(ssid);
+ text.Append(_L8("\n"));
+ iContainer->PrintNotify(text);
+ }
+ break;
+
+ case EConnTestWlanGetBssid:
+ {
+ if (!iSupportsWlan) { iContainer->PrintNotify(_L("WLAN not supported\n")); break; }
+ TWlanBssid bssid;
+ TInt ret = iWlanMgmtClient->GetConnectionBssid( bssid );
+ if( ret )
+ {
+ RDebug::Print( _L( "ConnTest: Error: %d" ), ret );
+ break;
+ }
+
+ RDebug::Print( _L( "ConnTest: BSSID = %S" ), &bssid );
+
+ TBuf8<64> text;
+ text.AppendFormat(_L8("BSSID: %02X:%02X:%02X:%02X:%02X:%02X\n"), bssid[0], bssid[1], bssid[2], bssid[3],bssid[4], bssid[5] );
+ iContainer->PrintNotify(text);
+ }
+ break;
+
+ case EConnTestWlanGetRssi:
+ {
+ if (!iSupportsWlan) { iContainer->PrintNotify(_L("WLAN not supported\n")); break; }
+ TInt32 rssi32;
+ TInt ret = iWlanMgmtClient->GetConnectionSignalQuality( rssi32 );
+ if( ret )
+ {
+ RDebug::Print( _L( "ConnTest: Error: %d" ), ret );
+ break;
+ }
+
+ RDebug::Print( _L( "ConnTest: RSSI = %d" ), rssi32 );
+
+ TInt8 rssi8 = static_cast<TInt8>(rssi32);
+ TBuf8<64> text;
+ text.AppendFormat(_L8("RSSI: %d\n"), rssi8);
+ iContainer->PrintNotify(text);
+ }
+ break;
+
+ case EConnTestWlanGetConnMode:
+ {
+ if (!iSupportsWlan) { iContainer->PrintNotify(_L("WLAN not supported\n")); break; }
+ TWlanConnectionMode connMode;
+ TInt ret = iWlanMgmtClient->GetConnectionMode( connMode );
+ if( ret )
+ {
+ RDebug::Print( _L( "ConnTest: Error: %d" ), ret );
+ break;
+ }
+
+ RDebug::Print( _L( "ConnTest: ConnectionMode = %d" ), connMode );
+
+ TBuf8<64> text;
+ text.Append(_L8("Mode: "));
+ switch( connMode )
+ {
+ case EWlanConnectionModeNotConnected:
+ text.Append(_L8("Not Connected"));
+ break;
+ case EWlanConnectionModeInfrastructure:
+ text.Append(_L8("Infrastructure"));
+ break;
+ case EWlanConnectionModeAdhoc:
+ text.Append(_L8("Ad hoc"));
+ break;
+ case EWlanConnectionModeSecureInfra:
+ text.Append(_L8("SecureInfra"));
+ break;
+ case EWlanConnectionModeSearching:
+ text.Append(_L8("Searching"));
+ break;
+ }
+ text.Append(_L8("\n"));
+ iContainer->PrintNotify(text);
+ }
+ break;
+
+ case EConnTestWlanGetSecurityMode:
+ {
+ if (!iSupportsWlan) { iContainer->PrintNotify(_L("WLAN not supported\n")); break; }
+ TWlanConnectionSecurityMode securityMode;
+ TInt ret = iWlanMgmtClient->GetConnectionSecurityMode( securityMode );
+ if( ret )
+ {
+ RDebug::Print( _L( "ConnTest: Error: %d" ), ret );
+ break;
+ }
+
+ RDebug::Print( _L( "ConnTest: SecurityMode = %d" ), securityMode );
+
+ TBuf8<64> text;
+ text.Append(_L8("Mode: "));
+ switch( securityMode )
+ {
+ case EWlanConnectionSecurityOpen:
+ text.Append(_L8("Open"));
+ break;
+ case EWlanConnectionSecurityWep:
+ text.Append(_L8("WEP"));
+ break;
+ case EWlanConnectionSecurity802d1x:
+ text.Append(_L8("802.1X"));
+ break;
+ case EWlanConnectionSecurityWpa:
+ text.Append(_L8("WPA"));
+ break;
+ case EWlanConnectionSecurityWpaPsk:
+ text.Append(_L8("WPA-PSK"));
+ break;
+ }
+ text.Append(_L8("\n"));
+ iContainer->PrintNotify(text);
+ }
+ break;
+
+ default:
+ {
+ AppUi()->HandleCommandL( aCommand );
+ break;
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CConnTestView::HandleClientRectChange()
+// ---------------------------------------------------------
+//
+void CConnTestView::SizeChanged()
+ {
+ if(iContainer)
+ {
+ iContainer->SetRect(ClientRect());
+ }
+ if(iSettingsListBox)
+ {
+ iSettingsListBox->SetRect(ClientRect());
+ }
+ }
+
+// ---------------------------------------------------------
+// CConnTestView::DoActivateL(...)
+// Activation of this view instance.
+// ---------------------------------------------------------
+//
+void CConnTestView::DoActivateL( const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,
+ const TDesC8& /*aCustomMessage*/)
+ {
+ if(!iContainer)
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::DoActivateL iContainer"));
+ iContainer = new (ELeave) CConnTestContainer;
+ iContainer->SetMopParent(this);
+ iContainer->ConstructL( ClientRect() );
+ //AppUi()->AddToStackL( *this, iContainer );
+ }
+ AppUi()->AddToStackL( *this, iContainer );
+
+ // Connection data for this view
+ if(!iSettingData)
+ {
+ // Note! Document class owns now settings, so that they can
+ // be stored into file.
+ //iSettingData = CSettingData::NewL(); owned now by CConnTestDocument
+ }
+
+ // Create socket engine with initial data
+ if(!iSocketsEngine)
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::DoActivateL iSocketsEngine"));
+ iSocketsEngine = CSocketsEngine::NewL(*iContainer);
+ iSocketsEngine->SetConnectionData(iSettingData);
+ }
+
+ // Create settings list
+ if(!iSettingsListBox)
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::DoActivateL iSettingsListBox"));
+ CreateSettingsListBoxL(R_CONNTEST_SETTING_LIST);
+ }
+
+ // Create Custom Preferences list
+ if(!iCustomPrefsListBox)
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::DoActivateL iCustomPrefsListBox"));
+ CreateCustomPrefsListBoxL(R_CONNTEST_CUSTOM_PREFS_LIST);
+ }
+
+ iActiveContainer = EOutputContainer;
+ iContainer->MakeVisible(ETrue);
+ SizeChanged();
+
+ if ( iSupportsWlan )
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::DoActivateL iWlanMgmtClient->ActivateNotificationsL"));
+ iWlanMgmtClient->ActivateNotificationsL( *this );
+ }
+ }
+
+// ---------------------------------------------------------
+// CConnTestView::DoDeactivate()
+// Deactivation of this view instance. Controls are not
+// deleted, so that old information in status and output
+// windows stays visible.
+// ---------------------------------------------------------
+//
+void CConnTestView::DoDeactivate()
+ {
+ if ( iSupportsWlan )
+ {
+ iWlanMgmtClient->CancelNotifications();
+ }
+
+ if ( iContainer )
+ {
+ AppUi()->RemoveFromStack( iContainer );
+ }
+ iContainer->MakeVisible(EFalse);
+
+ if (iSettingsListBox)
+ {
+ AppUi()->RemoveFromStack(iSettingsListBox);
+ }
+ }
+
+
+// ----------------------------------------------------------------------------
+// CConnTestView::SwapContainerL
+// Switch the display between main view and settings list.
+// ----------------------------------------------------------------------------
+//
+void CConnTestView::SwapContainerL(TConnTestContainer aActiveContainer)
+ {
+ CAknTitlePane* titlePane = STATIC_CAST(
+ CAknTitlePane*,
+ StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
+
+ if (iActiveContainer == aActiveContainer)
+ {
+ return;
+ }
+
+ // Remove the old container...
+ switch (iActiveContainer)
+ {
+ case EOutputContainer:
+ {
+ iContainer->MakeVisible(EFalse);
+ AppUi()->RemoveFromStack( iContainer );
+ break;
+ }
+ case ESettingsContainer:
+ {
+ AppUi()->RemoveFromStack(iSettingsListBox);
+ iSettingsListBox->MakeVisible(EFalse);
+ break;
+ }
+ default: // ECustomPrefsContainer:
+ {
+ AppUi()->RemoveFromStack(iCustomPrefsListBox);
+ iCustomPrefsListBox->MakeVisible(EFalse);
+ break;
+ }
+ }
+
+ // And add the new container
+ switch (aActiveContainer)
+ {
+ case EOutputContainer:
+ {
+ Cba()->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_EXIT);
+ AppUi()->AddToStackL( *this, iContainer );
+ iContainer->MakeVisible(ETrue);
+ titlePane->SetTextToDefaultL();
+
+ Cba()->DrawNow();
+ break;
+ }
+ case ESettingsContainer:
+ {
+ Cba()->SetCommandSetL(R_AVKON_SOFTKEYS_OK_BACK);
+ AppUi()->AddToStackL( *this, iSettingsListBox );
+ iSettingsListBox->MakeVisible(ETrue);
+ titlePane->SetTextL( _L("Settings") );
+ break;
+ }
+ default: // ECustomPrefsContainer:
+ {
+ Cba()->SetCommandSetL(R_AVKON_SOFTKEYS_OK_BACK);
+ AppUi()->AddToStackL( *this, iCustomPrefsListBox );
+ iCustomPrefsListBox->MakeVisible(ETrue);
+ titlePane->SetTextL( _L("Custom Preferences") );
+ break;
+ }
+ }
+
+ iActiveContainer = aActiveContainer;
+ }
+
+// ----------------------------------------------------------------------------
+// CConnTestView::CreateSettingsListBoxL
+// Create the setting item list, but don't show it.
+// ----------------------------------------------------------------------------
+//
+void CConnTestView::CreateSettingsListBoxL(TInt aResourceId)
+ {
+ iSettingsListBox = new (ELeave) CSettingItemList;
+ iSettingsListBox->SetData(iSettingData);
+ iSettingsListBox->SetMopParent(this);
+ iSettingsListBox->ConstructFromResourceL(aResourceId);
+ iSettingsListBox->MakeVisible(EFalse);
+ iSettingsListBox->SetRect(ClientRect());
+ iSettingsListBox->ActivateL();
+ }
+
+// ----------------------------------------------------------------------------
+// CConnTestView::CreateCustomPrefsListBoxL
+// Create the Custom Prefs item list, but don't show it.
+// ----------------------------------------------------------------------------
+//
+void CConnTestView::CreateCustomPrefsListBoxL(TInt aResourceId)
+ {
+ iCustomPrefsListBox = new (ELeave) CCustomPrefsItemList;
+ iCustomPrefsListBox->SetData(iCustomPrefsData);
+ iCustomPrefsListBox->SetMopParent(this);
+ iCustomPrefsListBox->ConstructFromResourceL(aResourceId);
+ iCustomPrefsListBox->MakeVisible(EFalse);
+ iCustomPrefsListBox->SetRect(ClientRect());
+ iCustomPrefsListBox->ActivateL();
+ }
+
+
+// ----------------------------------------------------------------------------
+// CConnTestView::CreateDataPacket
+// Write data to internal buffer, which is sent to socket. Maximum
+// size of the buffer is KSendDataSize bytes.
+// ----------------------------------------------------------------------------
+//
+void CConnTestView::CreateDataPacket()
+ {
+ RDebug::Print(_L("ConnTest: CConnTestView::CreateDataPacket: packet size = %d, SendDataSize = %d"),iSettingData->iPacketSize,KSendDataSize);
+ RDebug::Print(_L("ConnTest: CConnTestView::CreateDataPacket: buffer maxsize = %d"),iSendData->Des().MaxLength());
+
+ iSendData->Des().FillZ();
+ iSendData->Des().Zero();
+ TInt length = iSettingData->iPacketSize;
+ if(length > iSendData->Des().MaxLength())
+ {
+ TBuf<128> tt;
+ tt.Format(
+ _L("There was not enough space in the buffer for the data, so truncating to %d"),
+ iSendData->Des().MaxLength()
+ );
+ iContainer->PrintNotify(tt);
+ length = iSendData->Des().MaxLength();
+ iSettingData->iPacketSize = length;
+ }
+ iSendData->Des().Fill('a', iSettingData->iPacketSize - 1);
+ iSendData->Des().Append(_L8("\n"));
+ RDebug::Print(_L("ConnTest: CConnTestView::CreateDataPacket: created size = %d"),iSendData->Length());
+ }
+
+
+// ----------------------------------------------------------------------------
+// CConnTestView::SendDataL
+// The engine does the real work
+// ----------------------------------------------------------------------------
+//
+void CConnTestView::SendDataL()
+ {
+ iSocketsEngine->SendDataL(*iSendData);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::IsReadyForHTTPGet()
+// This function is used to check if a HTTP get can be performed
+// on an already existing connection
+// ------------------------------------------------------------------------------
+//
+TBool CConnTestView::IsReadyForHTTPGet()
+ {
+ TBool res = EFalse;
+ if (iSocketsEngine && iSocketsEngine->GetSocketEngineState() == CSocketsEngine::EConnected )
+ {
+ res = ETrue;
+ }
+ return res;
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
+// This function is called by the EIKON framework just before it displays
+// a menu pane. Menu is adjusted according to socket engine state.
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
+ {
+ RDebug::Print(_L("ConnTest: DynInitMenuPaneL: resourceId=%x"), aResourceId);
+
+ switch(aResourceId)
+ {
+ case R_CONNTEST_VIEW1_MENU:
+ {
+ CSocketsEngine::TSocketsEngineState state = iSocketsEngine->GetSocketEngineState();
+ CSocketsEngine::TRoamingUIState roamingState = iSocketsEngine->GetSocketEngineRoamingState();
+
+ switch(state)
+ {
+ case CSocketsEngine::EInterfaceDown:
+ aMenuPane->SetItemDimmed(EConnTestCmdCancel, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInterface, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInternet, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdStopInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdConnect, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdDisconnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdListen, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdSendRawData, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdHttpFrameworkGet, EFalse);
+ break;
+ case CSocketsEngine::EStartingInterface:
+ aMenuPane->SetItemDimmed(EConnTestCmdCancel, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInternet, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStopInterface, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdConnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdDisconnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdListen, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdSendRawData, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdHttpFrameworkGet, ETrue);
+ break;
+ case CSocketsEngine::EInterfaceUp:
+ aMenuPane->SetItemDimmed(EConnTestCmdCancel, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInternet, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStopInterface, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdConnect, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdDisconnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdListen, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdSendRawData, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdHttpFrameworkGet, EFalse);
+ break;
+ case CSocketsEngine::EConnected:
+ aMenuPane->SetItemDimmed(EConnTestCmdCancel, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInternet, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStopInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdConnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdDisconnect, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdListen, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdSendRawData, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdHttpFrameworkGet, EFalse);
+ break;
+ case CSocketsEngine::EConnecting:
+ aMenuPane->SetItemDimmed(EConnTestCmdCancel, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInternet, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStopInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdConnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdDisconnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdListen, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdSendRawData, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdHttpFrameworkGet, ETrue);
+ break;
+ case CSocketsEngine::EListening:
+ aMenuPane->SetItemDimmed(EConnTestCmdCancel, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInternet, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStopInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdConnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdDisconnect, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdListen, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdSendRawData, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdHttpFrameworkGet, ETrue);
+ break;
+ case CSocketsEngine::EDisconnecting:
+ aMenuPane->SetItemDimmed(EConnTestCmdCancel, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInternet, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStopInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdConnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdDisconnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdListen, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdSendRawData, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdHttpFrameworkGet, ETrue);
+ break;
+ case CSocketsEngine::ELookingUp:
+ aMenuPane->SetItemDimmed(EConnTestCmdCancel, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStartInternet, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdStopInterface, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdConnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdDisconnect, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdListen, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdSendRawData, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdHttpFrameworkGet, ETrue);
+ break;
+ default:
+ break;
+ }
+ switch (roamingState)
+ {
+ case CSocketsEngine::EPendingPreferredCarrier:
+ aMenuPane->SetItemDimmed(EConnTestCmdMigrate, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdIgnore, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdAccept, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdReject, ETrue);
+ break;
+ case CSocketsEngine::EPendingNewCarrierActive:
+ aMenuPane->SetItemDimmed(EConnTestCmdMigrate, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdIgnore, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdAccept, EFalse);
+ aMenuPane->SetItemDimmed(EConnTestCmdReject, EFalse);
+ break;
+ default:
+ aMenuPane->SetItemDimmed(EConnTestCmdMigrate, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdIgnore, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdAccept, ETrue);
+ aMenuPane->SetItemDimmed(EConnTestCmdReject, ETrue);
+ break;
+ }
+ }
+ break;
+ case R_CONNTEST_SUB_MENU_IPDUMP:
+ {
+
+ // Additional menupane handling, which doesn't depend on the state of the socket engine
+ CConnTestAppUi* appui = (CConnTestAppUi *)AppUi();
+ if(appui->IsLogging())
+ {
+ aMenuPane->SetItemDimmed(EConnTestCmdStartIpLog, ETrue);
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed(EConnTestCmdStopIpLog, ETrue);
+ }
+ }
+ break;
+
+ //enable mobility API submenupoints when connection is started with a snap
+ case R_CONNTEST_SUB_MENU_ADVANCED:
+ {
+
+ CSocketsEngine::TSocketsEngineStartType connType = iSocketsEngine->GetSocketEngineConnType();
+
+
+ break;
+
+ }
+ default:
+ break;
+ }
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::RequestCompleted()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::RequestCompleted( TInt aStatus, RArray<TUint>& aAvailableIaps )
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::RequestCompleted(aAvailableIaps)" ) );
+
+ if ( aStatus != KErrNone )
+ {
+ RDebug::Print( _L( "ConnTest: client->RequestCompleted failed with %d" ), aStatus );
+ return;
+ }
+
+ RDebug::Print( _L( "ConnTest: ivailableIaps.Count() = %u" ), aAvailableIaps.Count() );
+
+ TBuf<100> msg;
+ msg.AppendNum( aAvailableIaps.Count() );
+ msg.Append( _L( " WLAN IAP(s) found\n\n" ) );
+ for ( TUint idx( 0 ); idx < (TUint)aAvailableIaps.Count(); ++idx )
+ {
+ msg.AppendFormat( _L("%02u "), aAvailableIaps[idx] );
+ }
+ msg.Append( _L( "\n" ) );
+ iContainer->ErrorNotify( msg, KErrNone );
+
+ delete iWaiter;
+ iWaiter = NULL;
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::RequestCompleted()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::RequestCompleted( TInt aStatus, CWlanScanInfo& aScanInfo )
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::RequestCompleted(aScanInfo)" ) );
+
+ if ( aStatus != KErrNone )
+ {
+ RDebug::Print( _L( "ConnTest: client->RequestCompleted failed with %d" ), aStatus );
+ return;
+ }
+
+ TUint count( 0 );
+
+ aScanInfo.First();
+ while (!aScanInfo.IsDone())
+ {
+ ++count;
+ aScanInfo.Next();
+ }
+
+ TBuf<100> msg;
+ msg.AppendNum( count );
+ msg.Append( _L( " WLAN AP(s) found\n\n" ) );
+ iContainer->ErrorNotify( msg, KErrNone );
+
+ delete iWaiter;
+ iWaiter = NULL;
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::ConnectionStateChanged()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::ConnectionStateChanged( TWlanConnectionMode aNewState )
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::ConnectionStateChanged" ) );
+
+ TBuf8<64> text;
+ TTime currentTime(0);
+ currentTime.HomeTime();
+ TDateTime time = currentTime.DateTime();
+ text.AppendFormat(_L8("%02u:%02u:%02u "),
+ time.Hour(), time.Minute(), time.Second() );
+ text.Append(_L8("Wlan State: "));
+ switch( aNewState )
+ {
+ case EWlanConnectionModeNotConnected:
+ text.Append(_L8("Not Connected"));
+ break;
+ case EWlanConnectionModeInfrastructure:
+ text.Append(_L8("Infrastructure"));
+ break;
+ case EWlanConnectionModeAdhoc:
+ text.Append(_L8("Ad hoc"));
+ break;
+ case EWlanConnectionModeSecureInfra:
+ text.Append(_L8("SecureInfra"));
+ break;
+ case EWlanConnectionModeSearching:
+ text.Append(_L8("Searching"));
+ break;
+ }
+ text.Append(_L8("\n"));
+ iContainer->PrintNotify(text);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::BssidChanged()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::BssidChanged( TWlanBssid& aNewBSSID )
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::BssidChanged" ) );
+
+ TBuf8<64> text;
+ TTime currentTime(0);
+ currentTime.HomeTime();
+ TDateTime time = currentTime.DateTime();
+ text.AppendFormat(_L8("%02u:%02u:%02u "),
+ time.Hour(), time.Minute(), time.Second() );
+ text.AppendFormat(_L8("Wlan BSSID: %02X:%02X:%02X:%02X:%02X:%02X\n"), aNewBSSID[0], aNewBSSID[1], aNewBSSID[2], aNewBSSID[3], aNewBSSID[4], aNewBSSID[5] );
+ iContainer->PrintNotify(text);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::BssLost()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::BssLost()
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::BssLost" ) );
+
+ TBuf8<64> text;
+ TTime currentTime(0);
+ currentTime.HomeTime();
+ TDateTime time = currentTime.DateTime();
+ text.AppendFormat(_L8("%02u:%02u:%02u "),
+ time.Hour(), time.Minute(), time.Second() );
+ text.AppendFormat(_L8("Wlan: BssLost\n"));
+ iContainer->PrintNotify(text);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::BssRegained()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::BssRegained()
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::BssRegained" ) );
+
+ TBuf8<64> text;
+ TTime currentTime(0);
+ currentTime.HomeTime();
+ TDateTime time = currentTime.DateTime();
+ text.AppendFormat(_L8("%02u:%02u:%02u "),
+ time.Hour(), time.Minute(), time.Second() );
+ text.AppendFormat(_L8("Wlan: BssRegained\n"));
+ iContainer->PrintNotify(text);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::NewNetworksDetected()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::NewNetworksDetected()
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::NewNetworksDetected" ) );
+
+ TBuf8<64> text;
+ TTime currentTime(0);
+ currentTime.HomeTime();
+ TDateTime time = currentTime.DateTime();
+ text.AppendFormat(_L8("%02u:%02u:%02u "),
+ time.Hour(), time.Minute(), time.Second() );
+ text.AppendFormat(_L8("Wlan: NewNetworksDetected\n"));
+ iContainer->PrintNotify(text);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::OldNetworksLost()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::OldNetworksLost()
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::OldNetworksLost" ) );
+
+ TBuf8<64> text;
+ TTime currentTime(0);
+ currentTime.HomeTime();
+ TDateTime time = currentTime.DateTime();
+ text.AppendFormat(_L8("%02u:%02u:%02u "),
+ time.Hour(), time.Minute(), time.Second() );
+ text.AppendFormat(_L8("Wlan: OldNetworksLost\n"));
+ iContainer->PrintNotify(text);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::TransmitPowerChanged()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::TransmitPowerChanged( TUint aPower )
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::TransmitPowerChanged" ) );
+
+ TBuf8<64> text;
+ TTime currentTime(0);
+ currentTime.HomeTime();
+ TDateTime time = currentTime.DateTime();
+ text.AppendFormat(_L8("%02u:%02u:%02u "),
+ time.Hour(), time.Minute(), time.Second() );
+ text.AppendFormat(_L8("Wlan: TxPower: %d\n"), aPower);
+ iContainer->PrintNotify(text);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestView::RssChanged()
+// ------------------------------------------------------------------------------
+//
+void CConnTestView::RssChanged( TWlanRssClass aRssClass,
+ TUint aRss )
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestView::RssChanged" ) );
+
+ TBuf8<64> text;
+ TTime currentTime(0);
+ currentTime.HomeTime();
+ TDateTime time = currentTime.DateTime();
+ text.AppendFormat(_L8("%02u:%02u:%02u "),
+ time.Hour(), time.Minute(), time.Second() );
+ text.AppendFormat(_L8("Wlan: RssChanged: %d, %d\n"), aRssClass, aRss);
+ iContainer->PrintNotify(text);
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestViewWaiter::CConnTestViewWaiter()
+// ------------------------------------------------------------------------------
+//
+CConnTestViewWaiter::CConnTestViewWaiter( CWlanMgmtClient* aWlanMgmtClient,
+ CConnTestView& aCallback,
+ TConnTestWaitType aType )
+ : CActive( CActive::EPriorityStandard ),
+ iType( aType ),
+ iCallback( aCallback ),
+ iMgmtClient( aWlanMgmtClient ),
+ iScanInfo( NULL )
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestViewWaiter::CConnTestViewWaiter()" ) );
+ CActiveScheduler::Add( this );
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestViewWaiter::ConstructL()
+// ------------------------------------------------------------------------------
+//
+void CConnTestViewWaiter::ConstructL()
+ {
+ iScanInfo = CWlanScanInfo::NewL();
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestViewWaiter::~CConnTestViewWaiter()
+// ------------------------------------------------------------------------------
+//
+CConnTestViewWaiter::~CConnTestViewWaiter()
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestViewWaiter::~CConnTestViewWaiter()" ) );
+ Cancel();
+ iAvailableIaps.Close();
+ delete iScanInfo;
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestViewWaiter::RunL()
+// ------------------------------------------------------------------------------
+//
+void CConnTestViewWaiter::RunL()
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestViewWaiter::RunL()" ) );
+
+ if ( iType == EConnTestWaitTypeAvailableIaps )
+ {
+ iCallback.RequestCompleted( iStatus.Int(), iAvailableIaps );
+ }
+ else // EConnTestWaitTypeScan
+ {
+ iCallback.RequestCompleted( iStatus.Int(), *iScanInfo );
+ }
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestViewWaiter::RunError()
+// ------------------------------------------------------------------------------
+//
+TInt CConnTestViewWaiter::RunError( TInt /* aError */ )
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestViewWaiter::RunError()" ) );
+ return KErrNone;
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestViewWaiter::DoCancel()
+// ------------------------------------------------------------------------------
+//
+void CConnTestViewWaiter::DoCancel()
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestViewWaiter::DoCancel()" ) );
+ }
+
+// ------------------------------------------------------------------------------
+// CConnTestViewWaiter::IssueRequest()
+// ------------------------------------------------------------------------------
+//
+void CConnTestViewWaiter::IssueRequest()
+ {
+ RDebug::Print( _L( "ConnTest: CConnTestViewWaiter::IssueRequest()" ) );
+ if ( iType == EConnTestWaitTypeAvailableIaps )
+ {
+ iMgmtClient->GetAvailableIaps( iStatus, iAvailableIaps );
+ }
+ else // EConnTestWaitTypeScan
+ {
+ iMgmtClient->GetScanResults( iStatus, *iScanInfo );
+ }
+ SetActive();
+ }
+
+// End of File
+