datacommsserver/networkcontroller/ts_common/EtelBehaviour.cpp
changeset 0 dfb7c4ff071f
--- /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;
+	}
+