diff -r 14460bf2a402 -r f50f4094acd7 cbsref/telephonyrefplugins/atltsy/atcommand/generic/src/atcommandbase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsref/telephonyrefplugins/atltsy/atcommand/generic/src/atcommandbase.cpp Tue Jul 06 15:36:38 2010 +0300 @@ -0,0 +1,333 @@ +// 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 atcommandbase.cpp +// This contains CAtCommandBase which is the base class for AT command +// + +// user include +#include "mslogger.h" +#include "atcommandbase.h" +#include "commengine.h" +#include "atmanager.h" +#include "stringparser.h" +#include "atcommandexecuteobserver.h" +#include "activecommandstore.h" +#include "atswitchonlinemode.h" + +// --------------------------------------------------------------------------- +// CAtCommandBase::~CAtCommandBase +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtCommandBase::~CAtCommandBase() + { + iExpectingArray.Close(); + + delete iParser; + iParser = NULL; + + if(iATSwitchOnLineMode) + { + delete iATSwitchOnLineMode; + iATSwitchOnLineMode = NULL; + } + } + +// --------------------------------------------------------------------------- +// CAtCommandBase::AtType +// other items were commented in a header +// --------------------------------------------------------------------------- +TLtsyATCommandType CAtCommandBase::AtType() + { + return iAtType; + } + +// --------------------------------------------------------------------------- +// CAtCommandBase::CAtCommandBase +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtCommandBase::CAtCommandBase(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + :CRequestBase(aGloblePhone), + iCtsyDispatcherCallback(aCtsyDispatcherCallback) + + { + LOGTEXT(_L8("[Ltsy] Starting CAtCommandBase::CAtCommandBase()")); + + iAtType = ELtsyAt_User_NotUse; + + iWriteTimeOut = KLtsyDefaultWriteTimeOut; + iReadTimeOut = KLtsyDefaultReadTimeOut; + } + +// --------------------------------------------------------------------------- +// CAtCommandBase::ConstructL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::ConstructL() + { + iParser = new (ELeave) CRespondBufParser; + iAtCommandObserver = NULL; + //Add OK and ERROR expecting string + iExpectingArray.AppendL(KLtsyOkString()); + iExpectingArray.AppendL(KLtsyErrorString()); + iExpectingArray.AppendL(KLtsyCmeErrorString()); + + } + +// --------------------------------------------------------------------------- +// CAtCommandBase::AddExpectStringL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::AddExpectStringL(const TDesC8& aExpectStr) + { + iExpectingArray.AppendL(aExpectStr); + } + +// --------------------------------------------------------------------------- +// CAtCommandBase::RemoveAllExpectString +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::RemoveAllExpectString() + { + iExpectingArray.Reset(); + } + +// --------------------------------------------------------------------------- +// CAtCommandBase::RemoveExpectString +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::RemoveExpectString(const TDesC8& aExpectStr) + { + TBool found(ETrue); + TInt count = iExpectingArray.Count(); + + for (TInt n = 0; found && n < count; n++) + { + if (iExpectingArray[n].Compare(aExpectStr) == 0) + { + iExpectingArray.Remove(n); + iExpectingArray.Compress(); + found = EFalse; + } + } + } + +// --------------------------------------------------------------------------- +// CAtCommandBase::MatchExpectString +// other items were commented in a header +// --------------------------------------------------------------------------- +TBool CAtCommandBase::MatchExpectString(const TDesC8& aReadLine) + { + TInt count = iExpectingArray.Count(); + LOGTEXT2(_L8("[Ltsy] count = %d"), count); + for (TInt n = 0; n < count; n++) + { + if (aReadLine.Match(iExpectingArray[n]) == 0) + { + return ETrue; + } + } + if(aReadLine.Length()< KLtsyGenericBufferSize) + { + iNoMatchedLastLine.Copy(aReadLine); + } + return EFalse; + } +// --------------------------------------------------------------------------- +// CAtCommandBase::SetAtCommandObserver +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::SetAtCommandObserver(MAtCommandExecuteObserver* aAtCommandObserver) + { + iAtCommandObserver = aAtCommandObserver; + } +// --------------------------------------------------------------------------- +// CAtCommandBase::RemoveAtCommandObserver +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::RemoveAtCommandObserver() + { + iAtCommandObserver = NULL; + } +// --------------------------------------------------------------------------- +// CAtCommandBase::GenericEventSignal +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::GenericEventSignal(TAtEventSource aEventSource, TInt aStatus) + { + LOGTEXT(_L8("[Ltsy] Starting CAtCommandBase::GenericEventSignal()")); + if(iAtCommandObserver) + { + iAtCommandObserver->AtCommandExecuteComplete(aEventSource, aStatus); + } + else + { + EventSignal(aEventSource, aStatus); + } + if((aEventSource == EWriteCompletion) && (aStatus == KErrNone)) + { + StartTimer(iReadTimeOut); + } + LOGTEXT(_L8("[Ltsy] End CAtCommandBase::GenericEventSignal()")); + } +// --------------------------------------------------------------------------- +// CAtCommandBase::Write +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::Write() + { + LOGTEXT(_L8("[Ltsy] Starting CAtCommandBase::Write()")); + if(iPhoneGlobals.iPhoneStatus.iMode==RPhone::EModeOnlineData) + { + if(!iATSwitchOnLineMode) + { + TRAPD(ret,iATSwitchOnLineMode = CATSwitchOnLineMode::NewL(iPhoneGlobals,iCtsyDispatcherCallback)); + if(ret!=KErrNone) + { + EventSignal(EWriteCompletion,ret); + return; + } + } + iATSwitchOnLineMode->StartSwitchOnLineMode(this,iAtCommandObserver); + } + else + { + ClearBuffer(); + iPhoneGlobals.iAtManager->SetSolicitedAtCommand(this); + iPhoneGlobals.iCommEngine->CommWrite(iTxBuffer); + StartTimer(iWriteTimeOut); + } + } + +// --------------------------------------------------------------------------- +// CAtCommandBase::SetTimeOut +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::SetTimeOut(TInt aWriteTimeOut, TInt aReadTimeOut) + { + iWriteTimeOut = aWriteTimeOut; + iReadTimeOut = aReadTimeOut; + } + +//--------------------------------------------------------------------------- +// CAtCommandBase::SetTimeOut +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::StartTimer(const TInt aTimeOut) + { + iPhoneGlobals.iCommEngine->StartTimer(aTimeOut); + } + +//--------------------------------------------------------------------------- +// CAtCommandBase::StopTimer +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::StopTimer() + { + iPhoneGlobals.iCommEngine->StopTimer(); + } + +//--------------------------------------------------------------------------- +// CAtCommandBase::Buffer +// other items were commented in a header +// --------------------------------------------------------------------------- +TPtrC8 CAtCommandBase::Buffer() const + { + return iPhoneGlobals.iCommEngine->GetStringParse()->Buffer(); + } + +//--------------------------------------------------------------------------- +// CAtCommandBase::CurrentLine +// other items were commented in a header +// --------------------------------------------------------------------------- +TPtrC8 CAtCommandBase::CurrentLine() const + { + return iPhoneGlobals.iCommEngine->GetStringParse()->CurrentLine(); + } +//--------------------------------------------------------------------------- +// CAtCommandBase::PrecedingLine +// other items were commented in a header +// --------------------------------------------------------------------------- +TPtrC8 CAtCommandBase::PrecedingLine() const + { + return iNoMatchedLastLine; + } +//--------------------------------------------------------------------------- +// CAtCommandBase::ClearBuffer +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::ClearBuffer() + { + iPhoneGlobals.iCommEngine->GetStringParse()->ClearBuffer(); + } + +//--------------------------------------------------------------------------- +// CAtCommandBase::ClearCurrentLine +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::ClearCurrentLine() + { + iPhoneGlobals.iCommEngine->GetStringParse()->ClearCurrentLine(); + } + +//--------------------------------------------------------------------------- +// CAtCommandBase::Complete +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::Complete() + { + (iPhoneGlobals.iAtManager->GetActiveCommandStore())->RemoveActiveAtCommand(this); + StopTimer(); + ClearBuffer(); + } + +//--------------------------------------------------------------------------- +// CAtCommandBase::CancelCommand +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::CancelCommand() + { + + } + +//--------------------------------------------------------------------------- +// CAtCommandBase::ParseResponseL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::ParseResponseL(const TDesC8& /*aResponseBuf*/) + { + LOGTEXT(_L8("[Ltsy] Starting CAtCommandBase::ParseResponseL()")); + } + +void CAtCommandBase::EventSignal(TAtEventSource /*aEventSource*/, TInt /*aStatus*/) + { + + } +//--------------------------------------------------------------------------- +// CAtCommandBase::AddUnsolicitedAtCommand +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::AddUnsolicitedAtCommand() + { + iPhoneGlobals.iAtManager->GetActiveCommandStore()->AddUnsolicitedAtCommand(this); + } +//--------------------------------------------------------------------------- +// CAtCommandBase::RemoveAtCommand +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtCommandBase::RemoveAtCommand() + { + iPhoneGlobals.iAtManager->GetActiveCommandStore()->RemoveActiveAtCommand(this); + } +// End of file