telephonyserverplugins/multimodetsy/Multimode/gprs/atgprsntwkregstatuschange.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/multimodetsy/Multimode/gprs/atgprsntwkregstatuschange.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/multimodetsy/Multimode/gprs/atgprsntwkregstatuschange.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,181 +1,181 @@
-// Copyright (c) 2001-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 <et_phone.h>		// For CTelObject
-
-#include "atgprsntwkregstatuschange.h"		// Header file for this source file
-#include "mSLOGGER.H"					// For LOGTEXT macros
-#include "ATIO.H"							// For CATIO class
-#include "Matstd.h"						// For AT command strings and timeout values
-#include "gprs.h"							// for CGprs class
-#include "NOTIFY.H"						// for CNotifications
-
-// Macro for logging text to the log file using the local class name and a simpler 
-// call style.
-#ifdef __LOGDEB__
-_LIT8(KLogEntry,"CATGprsNtwkRegStatusChange::%S\t%S");
-#define LOCAL_LOGTEXT(function,text) {_LIT8(F,function);_LIT8(T,text);LOGTEXT3(KLogEntry,&F,&T);}
-#else
-#define LOCAL_LOGTEXT(function,text)
-#endif
-
-
-CATGprsNtwkRegStatusChange* CATGprsNtwkRegStatusChange::NewL(CATIO* aIo,CTelObject* aTelObject, CPhoneGlobals* aGlobals)
-/**
- * Standard class factory function
- */
- 	{
-	return (new(ELeave) CATGprsNtwkRegStatusChange(aIo,aTelObject,aGlobals));
-	// Currently no need for a ConstructL call, maybe we'll need one in the future...
-	}
-
-CATGprsNtwkRegStatusChange::CATGprsNtwkRegStatusChange(CATIO* aIo, CTelObject* aTelObject,CPhoneGlobals* aGlobals)
-	:CATBase(aIo,aTelObject,aGlobals)
- 	{
-	Enable();
-	}
-
-CATGprsNtwkRegStatusChange::~CATGprsNtwkRegStatusChange()
-	{
-	Disable();
-	}
-
-void CATGprsNtwkRegStatusChange::Enable()
-/** 
- * Adds the all important +CGREG:* expect string so that our ::EventSignal is called when 
- * we get an unsolicited network registration status changes.
- */
-	{
-	LOCAL_LOGTEXT("Enable","Adding +CGREG:* expect string");
-	
-	// Ensure +CRING is not on the expect string stack before we add it.
-	// (Doing things this way means we do not have to maintain an expect string in our
-	// member data)
-	iIo->RemoveExpectStrings(this);		
-
-	// Add +CRING expect string
-	__ASSERT_ALWAYS(iIo->AddExpectString(this,KCGREGMatchString) != NULL, Panic(EGeneral));
-	}
-
-void CATGprsNtwkRegStatusChange::Disable()
-/** 
- * Removes all expect strings added by this object. 
- * This object will not process +CRING until ::Enable() is called.
- */
-	{
-	LOCAL_LOGTEXT("Disable","Removing all CATGprsNtwkRegStatusCchange expect strings");
-	iIo->RemoveExpectStrings(this);		
-	}
-
-void CATGprsNtwkRegStatusChange::EventSignal(TEventSource aSource)
-/**
- * Called when a '+CGREG:' is received.
- * Parses the +CGREG:... string which we recieved from the phone and then triggers
- * the EPacketNtwkRegStatusChange notification as appropriate.
- */
-	{
-	LOCAL_LOGTEXT("EventSignal","Enter function");
-
-	TInt ret(KErrNone);
-	RPacketService::TRegistrationStatus regStatus(RPacketService::EUnknown);
-		
-	__ASSERT_ALWAYS(aSource == EReadCompletion, Panic(EATCommand_IllegalCompletionReadExpected));
-	TRAP(ret,ParseResponseL(regStatus));
-	if(ret!=KErrNone)
-		{
-		LOCAL_LOGTEXT("EventSignal","Unable to parse CGREG response");
-		}
-	else
-		{
-		//
-		// Trigger the notificaiton mechanism
-		LOCAL_LOGTEXT("EventSignal","Triggering EPacketNtwkRegStatusChange notification");
-		((CGprs*)iTelObject)->SetRegistrationStatus(regStatus);
-		iPhoneGlobals->iNotificationStore->CheckNotification(iTelObject, EPacketNtwkRegStatusChange);
-
-		// We are done, but there is no client request to complete
-		// we just return and wait until we get our next +CGREG:* command
-		}
-	}
-
-void CATGprsNtwkRegStatusChange::ParseResponseL(RPacketService::TRegistrationStatus& aRegStatus)
-/**
- * Parses the +CGREG unsolicited string from the modem.
- * An example response woulf be '+CGREG: 2' where the value denotes the
- * current registration status.
- * If parsing succeeds then aRegStatus is updated.
- */
-	{
-	ParseBufferLC();
-	TDblQueIter<CATParamListEntry> iter(iRxResults);
-	CATParamListEntry* entry=iter++;
-	
-	// Validate we have +CGREG at the start 
-	if((entry==NULL) ||(entry->iResultPtr!=KCGREGResponseString))
-		{
-		LOCAL_LOGTEXT("ParseResponseL","Failed to find +CGREG:");
-		User::Leave(KErrNotSupported);
-		}
-	
-	// Read in value
-	entry=iter++;
-	if(!entry)
-		{
-		LOCAL_LOGTEXT("ParseResponseL","Failed to find 1st parameter");
-		User::Leave(KErrNotFound);
-		}		
-	TInt etsiVal;
-	CATParamListEntry::EntryValL(entry,etsiVal);
-
-	// Convert value to equivalent EtelMM enum
-	switch(etsiVal)
-		{
-	case 0:		// ETSI value as defined in ETSI 07.07 section 10.1.14
-		aRegStatus=RPacketService::ENotRegisteredNotSearching;
-		break;
-	case 1:		// ETSI value as defined in ETSI 07.07 section 10.1.14
-		aRegStatus=RPacketService::ERegisteredOnHomeNetwork;
-		break;
-	case 2:		// ETSI value as defined in ETSI 07.07 section 10.1.14
-		aRegStatus=RPacketService::ENotRegisteredSearching;
-		break;
-	case 3:		// ETSI value as defined in ETSI 07.07 section 10.1.14
-		aRegStatus=RPacketService::ERegistrationDenied;
-		break;
-	case 4:		// ETSI value as defined in ETSI 07.07 section 10.1.14
-		aRegStatus=RPacketService::EUnknown;
-		break;
-	case 5:		// ETSI value as defined in ETSI 07.07 section 10.1.14
-		aRegStatus=RPacketService::ERegisteredRoaming;
-		break;
-	default:
-		aRegStatus=RPacketService::EUnknown;
-		break;
-		}
-	CleanupStack::PopAndDestroy();	// Pop and destroy the object pushed by ParseBufferLC()
-	}
-
-
-void CATGprsNtwkRegStatusChange::CompleteWithIOError(TEventSource /*aSource*/,TInt /*aStatus*/)
-	{
-	LOCAL_LOGTEXT("CATGprsNtwkRegStatusChange","CompleteWithIOError");
-	// CATIO removes expect strings in event of IO error so don't do it here
-	// Also, CATErrorHandler::CleanUp completes notification with error
-	}
-
-
-
-
-
+// Copyright (c) 2001-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 <et_phone.h>		// For CTelObject
+
+#include "atgprsntwkregstatuschange.h"		// Header file for this source file
+#include "mSLOGGER.H"					// For LOGTEXT macros
+#include "ATIO.H"							// For CATIO class
+#include "Matstd.h"						// For AT command strings and timeout values
+#include "gprs.h"							// for CGprs class
+#include "NOTIFY.H"						// for CNotifications
+
+// Macro for logging text to the log file using the local class name and a simpler 
+// call style.
+#ifdef __LOGDEB__
+_LIT8(KLogEntry,"CATGprsNtwkRegStatusChange::%S\t%S");
+#define LOCAL_LOGTEXT(function,text) {_LIT8(F,function);_LIT8(T,text);LOGTEXT3(KLogEntry,&F,&T);}
+#else
+#define LOCAL_LOGTEXT(function,text)
+#endif
+
+
+CATGprsNtwkRegStatusChange* CATGprsNtwkRegStatusChange::NewL(CATIO* aIo,CTelObject* aTelObject, CPhoneGlobals* aGlobals)
+/**
+ * Standard class factory function
+ */
+ 	{
+	return (new(ELeave) CATGprsNtwkRegStatusChange(aIo,aTelObject,aGlobals));
+	// Currently no need for a ConstructL call, maybe we'll need one in the future...
+	}
+
+CATGprsNtwkRegStatusChange::CATGprsNtwkRegStatusChange(CATIO* aIo, CTelObject* aTelObject,CPhoneGlobals* aGlobals)
+	:CATBase(aIo,aTelObject,aGlobals)
+ 	{
+	Enable();
+	}
+
+CATGprsNtwkRegStatusChange::~CATGprsNtwkRegStatusChange()
+	{
+	Disable();
+	}
+
+void CATGprsNtwkRegStatusChange::Enable()
+/** 
+ * Adds the all important +CGREG:* expect string so that our ::EventSignal is called when 
+ * we get an unsolicited network registration status changes.
+ */
+	{
+	LOCAL_LOGTEXT("Enable","Adding +CGREG:* expect string");
+	
+	// Ensure +CRING is not on the expect string stack before we add it.
+	// (Doing things this way means we do not have to maintain an expect string in our
+	// member data)
+	iIo->RemoveExpectStrings(this);		
+
+	// Add +CRING expect string
+	__ASSERT_ALWAYS(iIo->AddExpectString(this,KCGREGMatchString) != NULL, Panic(EGeneral));
+	}
+
+void CATGprsNtwkRegStatusChange::Disable()
+/** 
+ * Removes all expect strings added by this object. 
+ * This object will not process +CRING until ::Enable() is called.
+ */
+	{
+	LOCAL_LOGTEXT("Disable","Removing all CATGprsNtwkRegStatusCchange expect strings");
+	iIo->RemoveExpectStrings(this);		
+	}
+
+void CATGprsNtwkRegStatusChange::EventSignal(TEventSource aSource)
+/**
+ * Called when a '+CGREG:' is received.
+ * Parses the +CGREG:... string which we recieved from the phone and then triggers
+ * the EPacketNtwkRegStatusChange notification as appropriate.
+ */
+	{
+	LOCAL_LOGTEXT("EventSignal","Enter function");
+
+	TInt ret(KErrNone);
+	RPacketService::TRegistrationStatus regStatus(RPacketService::EUnknown);
+		
+	__ASSERT_ALWAYS(aSource == EReadCompletion, Panic(EATCommand_IllegalCompletionReadExpected));
+	TRAP(ret,ParseResponseL(regStatus));
+	if(ret!=KErrNone)
+		{
+		LOCAL_LOGTEXT("EventSignal","Unable to parse CGREG response");
+		}
+	else
+		{
+		//
+		// Trigger the notificaiton mechanism
+		LOCAL_LOGTEXT("EventSignal","Triggering EPacketNtwkRegStatusChange notification");
+		((CGprs*)iTelObject)->SetRegistrationStatus(regStatus);
+		iPhoneGlobals->iNotificationStore->CheckNotification(iTelObject, EPacketNtwkRegStatusChange);
+
+		// We are done, but there is no client request to complete
+		// we just return and wait until we get our next +CGREG:* command
+		}
+	}
+
+void CATGprsNtwkRegStatusChange::ParseResponseL(RPacketService::TRegistrationStatus& aRegStatus)
+/**
+ * Parses the +CGREG unsolicited string from the modem.
+ * An example response woulf be '+CGREG: 2' where the value denotes the
+ * current registration status.
+ * If parsing succeeds then aRegStatus is updated.
+ */
+	{
+	ParseBufferLC();
+	TDblQueIter<CATParamListEntry> iter(iRxResults);
+	CATParamListEntry* entry=iter++;
+	
+	// Validate we have +CGREG at the start 
+	if((entry==NULL) ||(entry->iResultPtr!=KCGREGResponseString))
+		{
+		LOCAL_LOGTEXT("ParseResponseL","Failed to find +CGREG:");
+		User::Leave(KErrNotSupported);
+		}
+	
+	// Read in value
+	entry=iter++;
+	if(!entry)
+		{
+		LOCAL_LOGTEXT("ParseResponseL","Failed to find 1st parameter");
+		User::Leave(KErrNotFound);
+		}		
+	TInt etsiVal;
+	CATParamListEntry::EntryValL(entry,etsiVal);
+
+	// Convert value to equivalent EtelMM enum
+	switch(etsiVal)
+		{
+	case 0:		// ETSI value as defined in ETSI 07.07 section 10.1.14
+		aRegStatus=RPacketService::ENotRegisteredNotSearching;
+		break;
+	case 1:		// ETSI value as defined in ETSI 07.07 section 10.1.14
+		aRegStatus=RPacketService::ERegisteredOnHomeNetwork;
+		break;
+	case 2:		// ETSI value as defined in ETSI 07.07 section 10.1.14
+		aRegStatus=RPacketService::ENotRegisteredSearching;
+		break;
+	case 3:		// ETSI value as defined in ETSI 07.07 section 10.1.14
+		aRegStatus=RPacketService::ERegistrationDenied;
+		break;
+	case 4:		// ETSI value as defined in ETSI 07.07 section 10.1.14
+		aRegStatus=RPacketService::EUnknown;
+		break;
+	case 5:		// ETSI value as defined in ETSI 07.07 section 10.1.14
+		aRegStatus=RPacketService::ERegisteredRoaming;
+		break;
+	default:
+		aRegStatus=RPacketService::EUnknown;
+		break;
+		}
+	CleanupStack::PopAndDestroy();	// Pop and destroy the object pushed by ParseBufferLC()
+	}
+
+
+void CATGprsNtwkRegStatusChange::CompleteWithIOError(TEventSource /*aSource*/,TInt /*aStatus*/)
+	{
+	LOCAL_LOGTEXT("CATGprsNtwkRegStatusChange","CompleteWithIOError");
+	// CATIO removes expect strings in event of IO error so don't do it here
+	// Also, CATErrorHandler::CleanUp completes notification with error
+	}
+
+
+
+
+