diff -r 2473f5e227f9 -r 8b72faa1200f cbsref/telephonyrefplugins/atltsy/atcommand/generic/src/atmanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsref/telephonyrefplugins/atltsy/atcommand/generic/src/atmanager.cpp Tue Jun 22 11:02:32 2010 +0100 @@ -0,0 +1,174 @@ +// 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: +// +// + +// use include +#include "atmanager.h" +#include "activecommandstore.h" +#include "mslogger.h" + +// --------------------------------------------------------------------------- +// CAtManager::NewL +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtManager* CAtManager::NewL() + { + LOGTEXT(_L8("[Ltsy] Starting CAtManager::NewL()")); + CAtManager *self = CAtManager::NewLC(); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// CAtManager::NewLC +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtManager* CAtManager::NewLC() + { + LOGTEXT(_L8("[Ltsy] Starting CAtManager::NewLC()")); + CAtManager *self = new (ELeave) CAtManager; + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CAtManager::~CAtManager +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtManager::~CAtManager() + { + LOGTEXT(_L8("[Ltsy] Starting CAtManager::~CAtManager()")); + + delete iActiveCommandStore; + iActiveCommandStore = NULL; + } + +// --------------------------------------------------------------------------- +// CAtManager::CAtManager +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtManager::CAtManager() + { + LOGTEXT(_L8("[Ltsy] Starting CAtManager::CAtManager()")); + } + +// --------------------------------------------------------------------------- +// CAtManager::ConstructL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtManager::ConstructL() + { + LOGTEXT(_L8("[Ltsy] Starting CAtManager::ConstructL()")); + iActiveCommandStore = CActiveCommandStore::NewL(); + } + +// --------------------------------------------------------------------------- +// CAtManager::SetSolicitedAtCommand +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtManager::SetSolicitedAtCommand(CAtCommandBase* aSolicitedCommand) + { + LOGTEXT(_L8("[Ltsy] Starting CAtManager::SetSolicitedAtCommand()")); + iSolicitedCommand = aSolicitedCommand; + } + +// --------------------------------------------------------------------------- +// CAtManager::GetActiveCommandStore +// other items were commented in a header +// --------------------------------------------------------------------------- +CActiveCommandStore* CAtManager::GetActiveCommandStore() const + { + return iActiveCommandStore; + } + +// --------------------------------------------------------------------------- +// CAtManager::ReadOrWriteComplete +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtManager::ReadOrWriteComplete(TAtEventSource aEvent, TInt aStatus) + { + LOGTEXT(_L8("[Ltsy] Starting CAtManager::AtCommandReadOrWriteComplete()")); + LOGTEXT3(_L8("[Ltsy] aEvent = %d, aStatus = %d"), aEvent, aStatus); + + if (aEvent == EWriteCompletion) + { + if (iSolicitedCommand != NULL) + { + if(aStatus == KErrNone) + { + // add this active AT Command in the first place of the store + iActiveCommandStore->AddSolicitedAtCommand(iSolicitedCommand); + } + else + { + iSolicitedCommand = NULL; + } + + iSolicitedCommand->GenericEventSignal(aEvent, aStatus); + } + } + else if (aEvent == EReadCompletion) + { + if (aStatus != KErrNone) + { + // check if there is active solicited AT command in the AT active command store + if((iActiveCommandStore->GetActiveCommandArray())[0] != NULL) + { + iSolicitedCommand->GenericEventSignal(aEvent, aStatus); + } + + iSolicitedCommand = NULL; + } + } + else if(aEvent == ETimeoutCompletion) + { + if(iSolicitedCommand) + { + iSolicitedCommand->GenericEventSignal(ETimeoutCompletion, aStatus); + iSolicitedCommand = NULL; + } + } + } + +// --------------------------------------------------------------------------- +// CAtManager::NotifyOneLineFoundL +// other items were commented in a header +// --------------------------------------------------------------------------- +TBool CAtManager::NotifyOneLineFoundL(TInt aStatus, const TDesC8& aLineBuf) + { + LOGTEXT(_L8("[Ltsy] Starting CAtManager::NotifyOneLineFoundL()")); + + RPointerArray& atCommands = iActiveCommandStore->GetActiveCommandArray(); + TInt count = atCommands.Count(); + LOGTEXT2(_L8("[Ltsy] count = %d"), count); + + TBool atCommandFound(EFalse); + + for (TInt n = 0; !atCommandFound && n < count; n++) + { + CAtCommandBase* atCommand = atCommands[n]; + if ((atCommand != NULL) && atCommand->MatchExpectString(aLineBuf)) + { + atCommandFound = ETrue; + atCommand->ParseResponseL(aLineBuf); + atCommand->GenericEventSignal(EReadCompletion, aStatus); + } + } + LOGTEXT(_L8("[Ltsy] End CAtManager::NotifyOneLineFoundL()")); + return ETrue; + } + +// End of file