diff -r 14460bf2a402 -r f50f4094acd7 cbsref/telephonyrefplugins/atltsy/atcommand/phonebooken/src/atphbkengetinfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsref/telephonyrefplugins/atltsy/atcommand/phonebooken/src/atphbkengetinfo.cpp Tue Jul 06 15:36:38 2010 +0300 @@ -0,0 +1,265 @@ +// 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: +// @file atphbkengetinfo.cpp +// This contains CAtPhbkEnGetInfo which is used to get emergency call info +// + +//system include +#include +#include + +//user include +#include "atphbkengetinfo.h" +#include "mslogger.h" +#include "ltsycommondefine.h" + +//constant defination +_LIT8(KSetEnStore,"AT+CPBS=\"%S\"\r"); +_LIT8(KGetEnStoreInfo,"AT+CPBS?\r"); +_LIT8(KCPBSResponseString,"+CPBS:"); +_LIT8(KPhonebookEn,"EN"); + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::CAtPhbkEnGetInfo +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtPhbkEnGetInfo::CAtPhbkEnGetInfo(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + :CAtCommandBase(aGloblePhone,aCtsyDispatcherCallback) + { + LOGTEXT(_L8("CAtPhbkEnGetInfo::CAtPhbkEnGetInfo called")); + } + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::~CAtPhbkEnGetInfo +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtPhbkEnGetInfo::~CAtPhbkEnGetInfo() + { + LOGTEXT(_L8("CAtPhbkEnGetInfo::~CAtPhbkEnGetInfo called")); + } + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::NewLC +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtPhbkEnGetInfo* CAtPhbkEnGetInfo::NewLC(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + { + CAtPhbkEnGetInfo* self = new (ELeave)CAtPhbkEnGetInfo(aGloblePhone, + aCtsyDispatcherCallback); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::NewL +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtPhbkEnGetInfo* CAtPhbkEnGetInfo::NewL(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + { + CAtPhbkEnGetInfo* self=CAtPhbkEnGetInfo::NewLC(aGloblePhone, + aCtsyDispatcherCallback); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::ConstructL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtPhbkEnGetInfo::ConstructL() + { + CAtCommandBase::ConstructL(); + } + + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::StartRequest +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtPhbkEnGetInfo::StartRequest() + { + ExecuteCommand(); + } + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::ExecuteCommand +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtPhbkEnGetInfo::ExecuteCommand() + { + LOGTEXT(_L8("CAtPhbkEnGetInfo::ExecuteCommand called")); + iState = ESetEnStore; + TPtrC8 storeName; + iTxBuffer.Zero(); + storeName.Set(KPhonebookEn); + iTxBuffer.Format(KSetEnStore,&storeName); + Write(); + } + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::EventSignal +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtPhbkEnGetInfo::EventSignal(TAtEventSource aEventSource, TInt aStatus) + { + LOGTEXT3(_L8("CAtPhbkEnGetInfo::EventSignal aStatus=%D iSource=%D"),aStatus,aEventSource); + + if(aStatus != KErrNone) + { + Complete(); + iPhoneGlobals.iEventSignalActive = EFalse; + iCtsyDispatcherCallback.CallbackPhonebookEnStoreGetInfoComp(aStatus,iUsed); + } + else + { + if( aEventSource == EWriteCompletion ) + { + LOGTEXT(_L8("CAtPhbkEnGetInfo::EventSignal,EWriteCompletion!")); + if( iState==ESetEnStore ) + { + iState = ESetEnStoreComplete; + } + else if( iState==EGetEnStoreInfo ) + { + iState = EGetEnStoreInfoComplete; + } + } + else + { + LOGTEXT(_L8("CAtPhbkEnGetInfo::EventSignal,EReadCompletion!")); + if( iState == ESetEnStoreComplete ) + { + Complete(); + iPhoneGlobals.iEventSignalActive = EFalse; + if(iError == KErrNone) + { + iState = EGetEnStoreInfo; + GetEnStoreInfo(); + } + else + { + iCtsyDispatcherCallback.CallbackPhonebookEnStoreGetInfoComp(iError,iUsed); + } + } + else if( iState == EGetEnStoreInfoComplete ) + { + Complete(); + iPhoneGlobals.iEventSignalActive = EFalse; + iCtsyDispatcherCallback.CallbackPhonebookEnStoreGetInfoComp(iError,iUsed); + } + } + } + } + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::GetEnStoreInfo +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtPhbkEnGetInfo::GetEnStoreInfo() + { + LOGTEXT(_L8("CAtPhbkEnGetInfo::GetEnStoreInfo callded")); + iPhoneGlobals.iEventSignalActive = ETrue; + iTxBuffer.Zero(); + iTxBuffer.Copy(KGetEnStoreInfo); + Write(); + } + +// --------------------------------------------------------------------------- +// CAtPhbkEnGetInfo::ParseResponseL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtPhbkEnGetInfo::ParseResponseL(const TDesC8& /*aResponseBuf*/) + { + if( iState==ESetEnStoreComplete ) + { + if (CurrentLine().Match(KLtsyOkString) == 0) + { + iError = KErrNone; + } + else + { + iError = KErrGeneral; + } + } + else if( iState==EGetEnStoreInfoComplete ) + { + /** + * Here is an Example + * +CPBS: "EN",2,16 + * phonebooken is selected,2 locations are used and + * total 16 locations are available + */ + iError = KErrNone; + RArray array; + CleanupClosePushL(array); + iParser->ParseRespondedBuffer(array,Buffer()); + //remove AT+CPBS + if(array[0].MatchF(KAnyATCommand)!=KErrNotFound) + { + array.Remove(0); + } + TInt count = array.Count(); +#ifdef _DEBUG + for( TInt i=0;i