?? iapconnectprogressnotifier.cpp
字號(hào):
/*
* ============================================================================
* Name : CIAPConnectProgressNotifier from
* IAPConnectProgressNotifier.cpp
* Part of : Internet Access Points Example v2.0
* Created : 01.09.2006 by Forum Nokia
* Version : 2.0
* Copyright: Forum Nokia
* ============================================================================
*/
// INCLUDES
#include "IAPConnectProgressNotifier.h"
#include "iapconnect.hrh"
#include <in_iface.h>
#include <aknglobalnote.h>
// CONSTANTS
_LIT(KNotConnectedText, "Not Connected");
_LIT(KUnknownStateText, "Unknown State");
_LIT(KTextConnectionUninitialised, "Not Connected");
_LIT(KTextStartingSelection, "Please wait...");
_LIT(KTextFinishedSelection, "Finished Selection");
_LIT(KTextConnectionFailure, "Connection Failure");
_LIT(KTextConnectionOpen, "Connection Open");
_LIT(KTextConnectionClosed, "Connection Closed");
_LIT(KTextLinkLayerOpen, "Link Layer Open");
_LIT(KTextLinkLayerClosed, "Link Layer Closed");
_LIT(KTextConnectionSuspended, "Connection Suspended");
_LIT(KTextPreparingConnection, "Preparing Connection");
_LIT(KTextConnecting, "Connecting...");
_LIT(KTextConnectionStartingClose, "Disconnecting");
_LIT(KTextCsdStartingLogIn, "Starting Login");
_LIT(KTextCsdFinishedLogIn, "Finished Login");
// ========================== MEMBER FUNCTIONS ===============================
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::NewL(
// MIAPConnectStateObserver* aObserver, RConnection& aConnection)
//
// Constructs CIAPConnectProgressNotifier object
// ---------------------------------------------------------------------------
//
CIAPConnectProgressNotifier* CIAPConnectProgressNotifier::NewL(
MIAPConnectStateObserver* aObserver, RConnection& aConnection)
{
CIAPConnectProgressNotifier* self = NewLC(aObserver, aConnection);
CleanupStack::Pop(self);
return self;
}
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::NewLC(
// MIAPConnectStateObserver* aObserver, RConnection& aConnection)
//
// Constructs CIAPConnectProgressNotifier object
// ---------------------------------------------------------------------------
//
CIAPConnectProgressNotifier* CIAPConnectProgressNotifier::NewLC(
MIAPConnectStateObserver* aObserver, RConnection& aConnection)
{
CIAPConnectProgressNotifier* self =
new (ELeave) CIAPConnectProgressNotifier(aObserver, aConnection);
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::CIAPConnectProgressNotifier(
// MIAPConnectStateObserver* aObserver, RConnection& aConnection)
//
// Constructor
// ---------------------------------------------------------------------------
//
CIAPConnectProgressNotifier::CIAPConnectProgressNotifier(
MIAPConnectStateObserver* aObserver, RConnection& aConnection)
: CActive(CActive::EPriorityStandard),
iConnection(aConnection),
iObserver(aObserver)
{
CActiveScheduler::Add(this);
}
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::~CIAPConnectProgressNotifier()
//
// Destructor
// ---------------------------------------------------------------------------
//
CIAPConnectProgressNotifier::~CIAPConnectProgressNotifier()
{
Cancel();
}
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::ConstructL()
//
// Second Phase Constructor
// ---------------------------------------------------------------------------
//
void CIAPConnectProgressNotifier::ConstructL()
{
iObserver->ChangeStateL(KNotConnectedText);
iConnection.ProgressNotification(iProgress, iStatus);
SetActive();
}
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::DoCancel()
//
// Cancel outstanding requests
// ---------------------------------------------------------------------------
//
void CIAPConnectProgressNotifier::DoCancel()
{
iConnection.CancelProgressNotification();
}
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::RunL()
//
// Handle request completion events
// ---------------------------------------------------------------------------
//
void CIAPConnectProgressNotifier::RunL()
{
switch (iProgress().iStage)
{
// Connection unitialised
case KConnectionUninitialised:
iState = EIAPConnectStateNotConnected;
iObserver->ChangeStateL(KTextConnectionUninitialised);
break;
// Starting connetion selection
case KStartingSelection:
iState = EIAPConnectStateConnecting;
iObserver->ChangeStateL(KTextStartingSelection);
break;
// Selection finished
case KFinishedSelection:
if (iProgress().iError == KErrNone)
{
// The user successfully selected an IAP to be used
iState = EIAPConnectStateConnecting;
iObserver->ChangeStateL(KTextFinishedSelection);
}
else
{
// The user pressed e.g. "Cancel" and did not select an IAP
iState = EIAPConnectStateNotConnected;
iObserver->ChangeStateL(KNotConnectedText);
}
break;
// Connection failure
case KConnectionFailure:
iState = EIAPConnectStateNotConnected;
iObserver->ChangeStateL(KTextConnectionFailure);
break;
// Prepearing connection (e.g. dialing)
case KPsdStartingConfiguration:
case KPsdFinishedConfiguration:
case KCsdFinishedDialling:
case KCsdScanningScript:
case KCsdGettingLoginInfo:
case KCsdGotLoginInfo:
iState = EIAPConnectStateConnecting;
iObserver->ChangeStateL(KTextPreparingConnection);
break;
// Creating connection (e.g. GPRS activation)
case KCsdStartingConnect:
case KCsdFinishedConnect:
iState = EIAPConnectStateConnecting;
iObserver->ChangeStateL(KTextConnecting);
break;
// Starting log in
case KCsdStartingLogIn:
iState = EIAPConnectStateConnecting;
iObserver->ChangeStateL(KTextCsdStartingLogIn);
break;
// Finished login
case KCsdFinishedLogIn:
iState = EIAPConnectStateConnecting;
iObserver->ChangeStateL(KTextCsdFinishedLogIn);
break;
// Connection open
case KConnectionOpen:
case KLinkLayerOpen:
iState = EIAPConnectStateConnected;
iObserver->ChangeStateL(KTextConnectionOpen);
break;
// Connection blocked or suspended
case KDataTransferTemporarilyBlocked:
iState = EIAPConnectStateConnected;
iObserver->ChangeStateL(KTextConnectionSuspended);
break;
// Hangup or GRPS deactivation
case KConnectionStartingClose:
iState = EIAPConnectStateDisconnecting;
iObserver->ChangeStateL(KTextConnectionStartingClose);
break;
// Connection closed
case KConnectionClosed:
case KLinkLayerClosed:
iState = EIAPConnectStateNotConnected;
iObserver->ChangeStateL(KTextConnectionClosed);
break;
// Unhandled state
default:
iState = EIAPConnectStateUnknown;
iObserver->ChangeStateL(KUnknownStateText);
break;
}
iConnection.ProgressNotification(iProgress, iStatus);
SetActive();
}
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::SetState(TInt aState)
//
// Set internal state
// ---------------------------------------------------------------------------
//
void CIAPConnectProgressNotifier::SetState(TInt aState)
{
iState=aState;
}
// ---------------------------------------------------------------------------
// CIAPConnectProgressNotifier::GetState() const
//
// Get internal state
// ---------------------------------------------------------------------------
//
TInt CIAPConnectProgressNotifier::GetState() const
{
return iState;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -