cbsref/telephonyrefplugins/atltsy/atcommand/generic/src/atmanager.cpp
branchRCL_3
changeset 65 630d2f34d719
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cbsref/telephonyrefplugins/atltsy/atcommand/generic/src/atmanager.cpp	Tue Aug 31 16:23:08 2010 +0300
@@ -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<CAtCommandBase>& 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