diff -r 000000000000 -r dfb7c4ff071f datacommsserver/networkcontroller/ts_common/EtelBehaviour.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/networkcontroller/ts_common/EtelBehaviour.cpp Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,529 @@ +// Copyright (c) 2002-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: +// + +#include "EtelBehaviour.h" +#include "etelmm.h" +#include "etelpckt.h" +#include "pcktcs.h" + +CEtelBehaviourBase::~CEtelBehaviourBase() + { + + if(iCurrentRPhoneRequestStatus) + CompleteCurrentRPhoneAsyncRequest(KErrCancel); + } + +CEtelBehaviourBase::CEtelBehaviourBase() + { + } + +void CEtelBehaviourBase::CompleteCurrentRPhoneAsyncRequest(TInt aError) + { + + if(iCurrentRPhoneRequestStatus) + { + User::RequestComplete(iCurrentRPhoneRequestStatus, aError); + iCurrentRPhoneRequestStatus = NULL; + iCurrentRPhoneAsyncRequest = 0; + } + } + +void CEtelBehaviourBase::CompleteCurrentRPacketServiceAsyncRequest(TInt aError) + { + + if(iCurrentRPacketServiceRequestStatus) + { + User::RequestComplete(iCurrentRPacketServiceRequestStatus, aError); + iCurrentRPacketServiceRequestStatus = NULL; + iCurrentRPacketServiceAsyncRequest = 0; + } + } + +COneShotTimer::COneShotTimer(MTimerObserver* aObserver) +: CTimer(CActive::EPriorityStandard), iObserver(aObserver) + { + + CActiveScheduler::Add(this); + } + +void COneShotTimer::RunL() + { + + iObserver->TimerComplete(iStatus.Int()); + } + +COneShotTimer* COneShotTimer::NewL(MTimerObserver* aObserver) + { + + COneShotTimer* self = new(ELeave) COneShotTimer(aObserver); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +void COneShotTimer::ConstructL() + { + + CTimer::ConstructL(); + } + +CEtelBehaviour* CEtelBehaviour::NewL() + { + CEtelBehaviour* self = new(ELeave) CEtelBehaviour(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +CEtelBehaviour::CEtelBehaviour() + { } + +void CEtelBehaviour::ConstructL() + { + + iTimer = COneShotTimer::NewL(this); + } + +CEtelBehaviour::~CEtelBehaviour() + { + + if(iTimer) + delete iTimer; + } + +TInt CEtelBehaviour::RTelServerLoadPhoneModule(const TDesC&) + { + + return KErrNone; + } + +TInt CEtelBehaviour::RTelServerEnumeratePhones(TInt& aNoOfPhones) + { + + aNoOfPhones = 5; + return KErrNone; + } + +TInt CEtelBehaviour::RTelServerGetTsyName(const TInt, TDes& aTsyName) + { + + _LIT(KTsyName, "mm"); + aTsyName = KTsyName(); + return KErrNone; + } + +TInt CEtelBehaviour::RTelServerGetPhoneInfo(const TInt,RTelServer::TPhoneInfo& aInfo) + { + + _LIT(KPhoneName, "mm"); + aInfo.iNetworkType = RTelServer::ENetworkTypeMobileDigital; + aInfo.iName = KPhoneName(); + aInfo.iNumberOfLines = 1; + aInfo.iExtensions = 1; + return KErrNone; + } + +TInt CEtelBehaviour::RTelServerUnloadPhoneModule(const TDesC&) + { + + return KErrNone; + } + +TInt CEtelBehaviour::RPhoneOpen(RTelServer&,const TDesC&) + { + + return KErrNone; + } + +void CEtelBehaviour::RPhoneCancelAsyncRequest(TInt aReqToCancel) + { + + ASSERT(iCurrentRPhoneAsyncRequest == aReqToCancel); + (void)aReqToCancel; + + CompleteCurrentRPhoneAsyncRequest(KErrCancel); + } + +TInt CEtelBehaviour::RPhoneGetCaps(RPhone::TCaps& aCaps) + { + + aCaps.iFlags = RPhone::KCapsData; + return KErrNone; + } + +TInt CEtelBehaviour::RMobilePhoneGetCurrentMode(RMobilePhone::TMobilePhoneNetworkMode& aNetworkMode) + { + + aNetworkMode = RMobilePhone::ENetworkModeGsm; + return KErrNone; + } + +void CEtelBehaviour::RMobilePhoneGetSignalStrength(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) + { + + ASSERT(!iCurrentRPhoneRequestStatus); + + aReqStatus = KRequestPending; + aSignalStrength = 1000; + aBar = 10; + + iCurrentRPhoneAsyncRequest = EMobilePhoneGetSignalStrength; + iCurrentRPhoneRequestStatus = &aReqStatus; + + CompleteCurrentRPhoneAsyncRequest(KErrNone); + } + +void CEtelBehaviour::RMobilePhoneNotifySignalStrengthChange(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) + { + + if(iCurrentRPhoneRequestStatus) + return; + + ASSERT(!iCurrentRPhoneRequestStatus); + + aReqStatus = KRequestPending; + aSignalStrength = 1500; + aBar = 15; + + iCurrentRPhoneAsyncRequest = EMobilePhoneNotifySignalStrengthChange; + iCurrentRPhoneRequestStatus = &aReqStatus; + + // Complete request after 1 second + iTimer->After(1000000); + } + +void CEtelBehaviour::TimerComplete(TInt) + { + + CompleteCurrentRPhoneAsyncRequest(KErrNone); + } + +TInt CEtelBehaviour::RMobilePhoneGetMultimodeCaps(TUint32& aCaps) + { + + aCaps = RMobilePhone::KCapsGprsSupported; + return KErrNone; + } + +TInt CEtelBehaviour::RPacketServiceOpen(RPhone&) + { + + return KErrNone; + } + +void CEtelBehaviour::RPacketServiceCancelAsyncRequest(TInt aReqToCancel) + { + + ASSERT(iCurrentRPacketServiceAsyncRequest == aReqToCancel); + (void)aReqToCancel; + + CompleteCurrentRPacketServiceAsyncRequest(KErrCancel); + } + +TInt CEtelBehaviour::RPacketServiceGetStatus(RPacketService::TStatus& aPacketStatus) + { + + aPacketStatus = RPacketService::EStatusAttached; + return KErrNone; + } + +void CEtelBehaviour::RPacketServiceGetMSClass(TRequestStatus& aStatus, RPacketService::TMSClass& aCurrentClass, RPacketService::TMSClass& aMaxClass) + { + + ASSERT(!iCurrentRPacketServiceRequestStatus); + + aStatus = KRequestPending; + aCurrentClass = RPacketService::EMSClassDualMode; + aMaxClass = RPacketService::EMSClassDualMode; + + iCurrentRPacketServiceAsyncRequest = EPacketGetMSClass; + iCurrentRPacketServiceRequestStatus = &aStatus; + + CompleteCurrentRPacketServiceAsyncRequest(KErrNone); + } + +void CEtelBehaviour::RPacketServiceGetNtwkRegStatus(TRequestStatus& aStatus, RPacketService::TRegistrationStatus& aRegistrationStatus) + { + + ASSERT(!iCurrentRPacketServiceRequestStatus); + + aStatus = KRequestPending; + aRegistrationStatus = RPacketService::ERegisteredOnHomeNetwork; + + iCurrentRPacketServiceAsyncRequest = EPacketGetNtwkRegStatus; + iCurrentRPacketServiceRequestStatus = &aStatus; + + CompleteCurrentRPacketServiceAsyncRequest(KErrNone); + } + +TInt CEtelBehaviour::RPacketServiceGetAttachMode(RPacketService::TAttachMode& aMode) + { + + aMode = RPacketService::EAttachWhenPossible; + return KErrNone; + } + + +// +// ETEL behaviour for test case NC-4-9 +// +// RTelServer LoadPhoneModule() will return KErrNotFound +// + +CTest0409Behaviour* CTest0409Behaviour::NewL() + { + + CTest0409Behaviour* self = new(ELeave) CTest0409Behaviour(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +CTest0409Behaviour::CTest0409Behaviour() + { } + +void CTest0409Behaviour::ConstructL() + { + + CEtelBehaviour::ConstructL(); + } + +CTest0409Behaviour::~CTest0409Behaviour() + { } + +TInt CTest0409Behaviour::RTelServerLoadPhoneModule(const TDesC&) + { + + return KErrNotFound; + } + + +// +// ETEL behaviour for test case NC-4-11 +// +// RPhone Open() will return KErrGeneral +// + +CTest0411Behaviour* CTest0411Behaviour::NewL() + { + + CTest0411Behaviour* self = new(ELeave) CTest0411Behaviour(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +CTest0411Behaviour::CTest0411Behaviour() + { } + +void CTest0411Behaviour::ConstructL() + { + + CEtelBehaviour::ConstructL(); + } + +CTest0411Behaviour::~CTest0411Behaviour() + { } + +TInt CTest0411Behaviour::RPhoneOpen(RTelServer&,const TDesC&) + { + + return KErrGeneral; + } + +TInt CTest0411Behaviour::RTelServerGetTsyName(const TInt, TDes& aTsyName) + { + + _LIT(KTsyName, "Test Case NC-4-11"); + aTsyName = KTsyName(); + return KErrNone; + } + + +// +// ETEL behaviour for test case NC-4-13 +// +// RPhone GetCaps() will return KErrGeneral +// + +CTest0413Behaviour* CTest0413Behaviour::NewL() + { + + CTest0413Behaviour* self = new(ELeave) CTest0413Behaviour(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +CTest0413Behaviour::CTest0413Behaviour() + { } + +void CTest0413Behaviour::ConstructL() + { + + CEtelBehaviour::ConstructL(); + } + +CTest0413Behaviour::~CTest0413Behaviour() + { } + +TInt CTest0413Behaviour::RTelServerGetTsyName(const TInt, TDes& aTsyName) + { + + _LIT(KTsyName, "Test Case NC-4-13"); + aTsyName = KTsyName(); + return KErrNone; + } + +TInt CTest0413Behaviour::RPhoneGetCaps(RPhone::TCaps&) + { + + return KErrGeneral; + } + + +// +// ETEL behaviour for test case NC-4-15 +// +// RPacketService Open() will return KErrNotFound +// + +CTest0415Behaviour* CTest0415Behaviour::NewL() + { + + CTest0415Behaviour* self = new(ELeave) CTest0415Behaviour(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +CTest0415Behaviour::CTest0415Behaviour() + { } + +void CTest0415Behaviour::ConstructL() + { + + CEtelBehaviour::ConstructL(); + } + +CTest0415Behaviour::~CTest0415Behaviour() + { } + +TInt CTest0415Behaviour::RTelServerGetTsyName(const TInt, TDes& aTsyName) + { + + _LIT(KTsyName, "Test Case NC-4-15"); + aTsyName = KTsyName(); + return KErrNone; + } + +TInt CTest0415Behaviour::RPacketServiceOpen(RPhone&) + { + + return KErrNotFound; + } + + +// +// ETEL behaviour for test case NC-4-17 +// +// RPacketService GetStatus() will return KErrGeneral +// + +CTest0417Behaviour* CTest0417Behaviour::NewL() + { + + CTest0417Behaviour* self = new(ELeave) CTest0417Behaviour(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +CTest0417Behaviour::CTest0417Behaviour() + { } + +void CTest0417Behaviour::ConstructL() + { + + CEtelBehaviour::ConstructL(); + } + +CTest0417Behaviour::~CTest0417Behaviour() + { } + +TInt CTest0417Behaviour::RTelServerGetTsyName(const TInt, TDes& aTsyName) + { + + _LIT(KTsyName, "Test Case NC-4-17"); + aTsyName = KTsyName(); + return KErrNone; + } + +TInt CTest0417Behaviour::RPacketServiceGetStatus(RPacketService::TStatus&) + { + + return KErrGeneral; + } + +// +// ETEL behaviour for test case NC-4-20 +// +// RPacketService GetAttachMode() will RPacketService::EAttachWhenNeeded +// + +CTest0420Behaviour* CTest0420Behaviour::NewL() + { + + CTest0420Behaviour* self = new(ELeave) CTest0420Behaviour(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +CTest0420Behaviour::CTest0420Behaviour() + { } + +void CTest0420Behaviour::ConstructL() + { + + CEtelBehaviour::ConstructL(); + } + +CTest0420Behaviour::~CTest0420Behaviour() + { } + +TInt CTest0420Behaviour::RTelServerGetTsyName(const TInt, TDes& aTsyName) + { + + _LIT(KTsyName, "Test Case NC-4-20"); + aTsyName = KTsyName(); + return KErrNone; + } + +TInt CTest0420Behaviour::RPacketServiceGetAttachMode(RPacketService::TAttachMode& aMode) + { + + aMode = RPacketService::EAttachWhenNeeded; + return KErrNone; + } +