--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/mobilitytestframework/src/cimmobilitytestframework.cpp Thu Jan 21 12:53:44 2010 +0000
@@ -0,0 +1,176 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "cimmobilitytestframework.h"
+#include "cimmobilitytesttls.h"
+#include "cimmobilitymanager.h"
+#include "cmsgtestpropertywatcher.h"
+#include "mobilitytestpropertyvalue.h"
+
+/**
+Creates a test framework.
+Static method.
+
+@param aServiceId Service ID of associated MTM
+@param aMobilityManager Associated mobility manager
+*/
+EXPORT_C void CImMobilityTestFramework::Create(TMsvId aServiceId, CImMobilityManager& aMobilityManager)
+ {
+ TRAP_IGNORE(NewL(aServiceId, aMobilityManager));
+ }
+
+/**
+Deletes a test framework.
+Static method.
+
+@param aMobilityManager Associated mobility manager
+*/
+EXPORT_C void CImMobilityTestFramework::Delete(CImMobilityManager& aMobilityManager)
+ {
+ CImMobilityTestTls* testTls = static_cast<CImMobilityTestTls*>(Dll::Tls());
+
+ if (testTls)
+ {
+ TBool lastOne = EFalse;
+ CImMobilityTestFramework* framework = testTls->RemoveFramework(aMobilityManager, lastOne);
+
+ if (framework)
+ {
+ delete framework;
+ }
+
+ if (lastOne)
+ {
+ delete testTls;
+ }
+ }
+ }
+
+/**
+Called by an MTM when it reaches a specific operation state.
+Static method.
+
+@param aServiceId Service ID of MTM
+@param aMtmState MTM state
+*/
+EXPORT_C void CImMobilityTestFramework::MtmState(TMsvId aServiceId, TImMobilityTestMtmState aMtmState)
+ {
+ CImMobilityTestTls* testTls = static_cast<CImMobilityTestTls*>(Dll::Tls());
+
+ if (testTls)
+ {
+ CImMobilityTestFramework* framework = testTls->GetFramework(aServiceId);
+ if (framework)
+ {
+ // Flag the call
+ RProperty& property = framework->iPropertyWatcher->Property();
+ property.Set(aMtmState);
+ }
+ }
+ }
+
+/**
+Called by the net test stub to determine the service id.
+Static method.
+
+@param aProtocol reference to MMobilityProtocolResp
+*/
+EXPORT_C TMsvId CImMobilityTestFramework::GetServiceId(MMobilityProtocolResp& aProtocol)
+ {
+ CImMobilityTestTls* testTls = static_cast<CImMobilityTestTls*>(Dll::Tls());
+
+ if (testTls)
+ {
+ CImMobilityTestFramework* framework = testTls->GetFramework(aProtocol);
+ if (framework)
+ {
+ return framework->ServiceId();
+ }
+ }
+
+ return KErrNotFound;
+ }
+
+/**
+Factory constructor.
+Static method.
+
+@param aServiceId Service ID of associated MTM
+@param aMobilityManager Associated mobility manager
+*/
+void CImMobilityTestFramework::NewL(TMsvId aServiceId, CImMobilityManager& aMobilityManager)
+ {
+ CImMobilityTestTls* testTls = CImMobilityTestTls::NewL();
+
+ CImMobilityTestFramework* self = new (ELeave) CImMobilityTestFramework(aServiceId, aMobilityManager);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ // Store framework. Ownership is passed.
+ testTls->AddFrameworkL(*self);
+ }
+
+/**
+Class constructor.
+
+@param aServiceId Service ID of associated MTM
+@param aMobilityManager Associated mobility manager
+*/
+CImMobilityTestFramework::CImMobilityTestFramework(TMsvId aServiceId, CImMobilityManager& aMobilityManager) :
+ iMobilityManager(aMobilityManager),
+ iServiceId(aServiceId)
+ {
+ }
+
+/**
+Second phase constructor
+*/
+void CImMobilityTestFramework::ConstructL()
+ {
+ iPropertyWatcher = CMsgTestPropertyWatcher::NewL(KPropertyCatMsgTestUtilityServer2, EMyPropertyCounter, *this);
+ }
+
+/**
+Class destructor
+*/
+CImMobilityTestFramework::~CImMobilityTestFramework()
+ {
+ delete iPropertyWatcher;
+ }
+
+/**
+Returns service ID of associated MTM
+
+@return Service ID of MTM
+*/
+TMsvId CImMobilityTestFramework::ServiceId()
+ {
+ return iServiceId;
+ }
+
+/**
+Returns associated mobility maanger
+
+@return Mobility manager
+*/
+CImMobilityManager& CImMobilityTestFramework::MobilityManager()
+ {
+ return iMobilityManager;
+ }
+
+void CImMobilityTestFramework::HandleEventL(RProperty& /*aProperty*/, TUint /*aKey*/)
+ {
+ //Don't need to respond to events here.
+ }