cbsref/telephonyrefplugins/atltsy/atcommand/phone/src/getcurrentnetworkinfo.cpp
branchRCL_3
changeset 65 630d2f34d719
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cbsref/telephonyrefplugins/atltsy/atcommand/phone/src/getcurrentnetworkinfo.cpp	Tue Aug 31 16:23:08 2010 +0300
@@ -0,0 +1,347 @@
+// Copyright (c) 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:
+// CATGetModemStatus
+// Description:
+// CGetCurrentNetworkInfo
+
+#include <ctsy/ltsy/cctsydispatchercallback.h>
+#include <ctsy/ltsy/mltsydispatchphoneinterface.h>
+#include "getcurrentnetworkinfo.h"
+#include "mslogger.h"
+#include "atgetnetworkinfo.h"
+
+// define the AT command format
+_LIT8(KATSetFormatForLongName,  "AT+COPS=3,0\r");
+_LIT8(KATSetFormatForShortName, "AT+COPS=3,1\r");
+_LIT8(KATSetNumbericFormat,     "AT+COPS=3,2\r");
+
+// Class CGetCurrentNetworkInfo
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::NewL
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+CGetCurrentNetworkInfo* CGetCurrentNetworkInfo::NewL(CGlobalPhonemanager& aGloblePhone, 
+	                                     CCtsyDispatcherCallback& aCtsyDispatcherCallback)
+	{
+	CGetCurrentNetworkInfo* self = new(ELeave) CGetCurrentNetworkInfo(aGloblePhone,
+			                                              aCtsyDispatcherCallback);
+	CleanupStack::PushL(self );
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self ;
+	}
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::CGetCurrentNetworkInfo
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+CGetCurrentNetworkInfo::CGetCurrentNetworkInfo(CGlobalPhonemanager& aGloblePhone, 
+	                               CCtsyDispatcherCallback& aCtsyDispatcherCallback)
+		:CATCommandControlBase(aGloblePhone,aCtsyDispatcherCallback)
+	{
+	}
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::ConstructL
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::ConstructL()
+	{
+	LOGTEXT(_L8("[Ltsy Phone Control] Starting CATAnswer::ConstructL"));
+	iState = EATUnknown;
+	iATNetworkInfo = CATNetworkInfo::NewL(iPhoneGlobals,iCtsyDispatcherCallback);
+	iATHelperCommand = CATHelperCommand::NewL(iPhoneGlobals,iCtsyDispatcherCallback);
+	}
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::~CGetCurrentNetworkInfo
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+CGetCurrentNetworkInfo::~CGetCurrentNetworkInfo()
+	{
+	LOGTEXT(_L8("[Ltsy Phone Control] Starting CATAnswer::~CGetCurrentNetworkInfo()"));
+	delete iATHelperCommand;
+	iATHelperCommand = NULL;
+	delete iATNetworkInfo;
+	iATNetworkInfo = NULL;
+	}
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::AtCommandExecuteComplete
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::AtCommandExecuteComplete(TAtEventSource aEventSource, TInt aStatus)
+	{
+	if((aEventSource == EWriteCompletion)&&(KErrNone == aStatus))
+		{
+		return;
+		}
+	
+	switch(iState)
+		{
+		case EATSetLongFormat:
+		    LOGTEXT(_L8("[Ltsy Phone Control] complete EATSetLongFormat"));
+		    CompeteATCommand(iATHelperCommand);
+		    if(aStatus != KErrNone)
+		        {
+		        HandleGetCurNetworkError(aStatus);
+		        }
+		    else 
+		        {
+		        aStatus = iATHelperCommand->GetErrorValue();
+		        if(aStatus != KErrNone)
+		            {
+		            HandleGetCurNetworkError(aStatus);
+		            }
+		        else
+		            {
+		            iState = EATGetLongName;
+		            GetNetworkLongName();
+		            }
+		        }
+			break;
+			
+		case EATGetLongName:
+		    LOGTEXT(_L8("[Ltsy Phone Control] complete EATGetLongName"));
+		    CompeteATCommand(iATNetworkInfo);
+		    if(aStatus != KErrNone)
+		        {
+		        HandleGetCurNetworkError(aStatus);
+		        }
+		    else
+				{
+				TInt err = iATNetworkInfo->GetErrorValue();
+				if(err != KErrNone)
+				    {
+				    HandleGetCurNetworkError(err);
+				    }
+				else
+				    {
+				    iState = EATSetShortFormat;
+				    SetShortNameFormat();
+				    }
+				}
+			break;
+			
+		case EATSetShortFormat:
+		    LOGTEXT(_L8("[Ltsy Phone Control] complete EATSetShortFormat"));
+		    CompeteATCommand(iATHelperCommand);
+            if(aStatus != KErrNone)
+                {
+                HandleGetCurNetworkError(aStatus);
+                }
+            else 
+                {
+                aStatus = iATHelperCommand->GetErrorValue();
+                if(aStatus != KErrNone)
+                    {
+                    HandleGetCurNetworkError(aStatus);
+                    }
+                else
+                    {
+                    iState = EATGetShortName;
+                    GetNetworkShortName();
+                    }
+                }		    
+		    break;
+		    
+		case EATGetShortName:
+		    LOGTEXT(_L8("[Ltsy Phone Control] complete EATGetShortName"));
+            CompeteATCommand(iATNetworkInfo);
+            if(aStatus != KErrNone)
+                {
+                HandleGetCurNetworkError(aStatus);
+                }
+            else
+                {
+                TInt err = iATNetworkInfo->GetErrorValue();
+                if(err != KErrNone)
+                    {
+                    HandleGetCurNetworkError(err);
+                    }
+                else
+                    {
+                    iState = EATSetNumbericFormat;
+                    SetNumbericFormat();
+                    }
+                }
+		    break;
+		case EATSetNumbericFormat:
+		    LOGTEXT(_L8("[Ltsy Phone Control] complete EATSetNumbericFormat"));
+            CompeteATCommand(iATHelperCommand);
+            if(aStatus != KErrNone)
+                {
+                HandleGetCurNetworkError(aStatus);
+                }
+            else 
+                {
+                aStatus = iATHelperCommand->GetErrorValue();
+                if(aStatus != KErrNone)
+                    {
+                    HandleGetCurNetworkError(aStatus);
+                    }
+                else
+                    {
+                    iState = EATGetCountryCodeAndNetwrokId;
+                    GetCountryCodeAndNetworkId();
+                    }
+                }           
+            break;
+        case EATGetCountryCodeAndNetwrokId:
+            LOGTEXT(_L8("[Ltsy Phone Control] complete EATGetCountryCodeAndNetwrokId"));
+            CompeteATCommand(iATNetworkInfo);
+            if(aStatus != KErrNone)
+                {
+                HandleGetCurNetworkError(aStatus);
+                }
+            else
+                {
+                TInt err = iATNetworkInfo->GetErrorValue();
+                if(err != KErrNone)
+                    {
+                    HandleGetCurNetworkError(err);
+                    }
+                else
+                    {
+                    iState = EATUnknown;
+                    HandleGetCurNetworkComplete();
+                    }
+                }
+            break;
+            
+		default:
+			break;
+		}
+	}
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::StartRequestL
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::StartRequest()
+	{
+	LOGTEXT(_L8("[Ltsy Phone Control] Starting CATAnswer::StartRequest()"));
+	iState = EATSetLongFormat;
+	SetLongNameFormat();
+	}
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::StartATCommand
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::StartATCommand(CAtCommandBase* aAtCommand)
+	{
+	aAtCommand->SetAtCommandObserver(this);
+	aAtCommand->StartRequest();
+	}
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::EndATCommand
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::CompeteATCommand(CAtCommandBase* aAtCommand)
+	{
+	aAtCommand->RemoveAtCommandObserver();
+	aAtCommand->Complete();
+	}
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::SetLongNameFormat
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::SetLongNameFormat()
+    {
+    iATHelperCommand->SetAtCommandString(KATSetFormatForLongName);
+    StartATCommand(iATHelperCommand);
+    }
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::SetLongNameFormat
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::GetNetworkLongName()
+    {
+    StartATCommand(iATNetworkInfo);
+    }
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::SetLongNameFormat
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::SetShortNameFormat()
+    {
+    iATHelperCommand->SetAtCommandString(KATSetFormatForShortName);
+    StartATCommand(iATHelperCommand);
+    }
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::GetNetworkShortName
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::GetNetworkShortName()
+    {
+    StartATCommand(iATNetworkInfo);
+    }
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::SetShortNumbericFormat
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::SetNumbericFormat()
+    {
+    iATHelperCommand->SetAtCommandString(KATSetNumbericFormat);
+    StartATCommand(iATHelperCommand);
+    }
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::SetShortNumbericFormat
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::GetCountryCodeAndNetworkId()
+    {
+    StartATCommand(iATNetworkInfo);
+    }
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::HandleGetCurNetworkError
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::HandleGetCurNetworkError(TInt aError)
+    {
+    iCtsyDispatcherCallback.CallbackPhoneGetCurrentNetworkInfoComp(aError,
+                                    iNetworkInfo, 
+                                    iPhoneGlobals.iPhoneStatus.iLocationArea);
+    }
+
+// ---------------------------------------------------------------------------
+// CGetCurrentNetworkInfo::HandleGetCurNetworkComplete
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CGetCurrentNetworkInfo::HandleGetCurNetworkComplete()
+    {
+    LOGTEXT(_L8("[Ltsy Phone Control] CGetCurrentNetworkInfo::HandleGetCurNetworkComplete()"));
+    iNetworkInfo = iATNetworkInfo->GetNetWorkInfo();
+    iPhoneGlobals.iPhoneStatus.iCurrentNetwork = iNetworkInfo;
+    iPhoneGlobals.iEventSignalActive = EFalse;
+    iCtsyDispatcherCallback.CallbackPhoneGetCurrentNetworkInfoComp(KErrNone,
+                            iNetworkInfo, 
+                            iPhoneGlobals.iPhoneStatus.iLocationArea);
+    
+    if(iIpcCompleteObserver)
+        {
+        iIpcCompleteObserver->NotifyIpcRequestComplete(MLtsyDispatchPhoneGetCurrentNetworkInfo::KLtsyDispatchPhoneGetCurrentNetworkInfoApiId);
+        }
+    }
+
+// End of file