diff -r 2473f5e227f9 -r 8b72faa1200f cbsref/telephonyrefplugins/atltsy/atcommand/sms/src/atsmsack.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsref/telephonyrefplugins/atltsy/atcommand/sms/src/atsmsack.cpp Tue Jun 22 11:02:32 2010 +0100 @@ -0,0 +1,280 @@ +// 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 atsmsack.cpp +// This contains CAtSmsAck and CAtSmsNack which is used to send +// positive(negative) acknowledgment +// + +//system include +#include +#include + +//user include +#include "atsmsack.h" +#include "mslogger.h" +#include "smsatutil.h" + +//constant defination +_LIT8(KSendCNMACommand,"AT+CNMA\r\n"); +_LIT8(KCNMAForNack,"AT+CNMA=2,%d\r\n"); + +// --------------------------------------------------------------------------- +// CAtSmsAck::CAtSmsAck +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtSmsAck::CAtSmsAck(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + :CAtCommandBase(aGloblePhone,aCtsyDispatcherCallback) + { + LOGTEXT(_L8("CAtSmsAck::CAtSmsAck called")); + } + +// --------------------------------------------------------------------------- +// CAtSmsAck::~CAtSmsAck +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtSmsAck::~CAtSmsAck() + { + LOGTEXT(_L8("CAtSmsAck::~CAtSmsAck called")); + } + +// --------------------------------------------------------------------------- +// CAtSmsAck::NewLC +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtSmsAck* CAtSmsAck::NewLC(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + { + CAtSmsAck* self = new (ELeave)CAtSmsAck(aGloblePhone, + aCtsyDispatcherCallback); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CAtSmsAck::NewL +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtSmsAck* CAtSmsAck::NewL(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + { + CAtSmsAck* self=CAtSmsAck::NewLC(aGloblePhone, + aCtsyDispatcherCallback); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// CAtSmsAck::ConstructL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsAck::ConstructL() + { + CAtCommandBase::ConstructL(); + } + +// --------------------------------------------------------------------------- +// CAtSmsAck::StartRequest +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsAck::StartRequest() + { + ExecuteCommand(); + } + +// --------------------------------------------------------------------------- +// CAtSmsAck::ExecuteCommand +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsAck::ExecuteCommand() + { + LOGTEXT(_L8("CAtSmsAck::ExecuteCommand called")); + iTxBuffer.Zero(); + iTxBuffer.Copy( KSendCNMACommand ); + Write(); + } + +// --------------------------------------------------------------------------- +// CAtSmsAck::EventSignal +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsAck::EventSignal(TAtEventSource aEventSource, TInt aStatus) + { + LOGTEXT3(_L8("CAtSmsAck::EventSignal aStatus=%D iSource=%D"),aStatus,aEventSource); + if(aStatus == KErrNone) + { + if((aEventSource == EWriteCompletion)) + { + LOGTEXT(_L8("CAtSmsNack::EventSignal,EWriteCompletion!")); + return; + } + aStatus = iError; + } + Complete(); + iPhoneGlobals.iEventSignalActive = EFalse; + iCtsyDispatcherCallback.CallbackSmsAckSmsStoredComp(aStatus); + } + +// --------------------------------------------------------------------------- +// CAtSmsAck::ParseResponseL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsAck::ParseResponseL(const TDesC8& /*aResponseBuf*/) + { + if (CurrentLine().Match(KLtsyOkString) == 0) + { + iError = KErrNone; + } + else + { + iError = KErrGeneral; + } + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::CAtSmsNack +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtSmsNack::CAtSmsNack(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + :CAtCommandBase(aGloblePhone,aCtsyDispatcherCallback) + { + LOGTEXT(_L8("CAtSmsNack::CAtSmsNack called")); + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::~CAtSmsNack +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtSmsNack::~CAtSmsNack() + { + LOGTEXT(_L8("CAtSmsNack::~CAtSmsNack called")); + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::NewLC +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtSmsNack* CAtSmsNack::NewLC(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + { + CAtSmsNack* self = new (ELeave)CAtSmsNack(aGloblePhone, + aCtsyDispatcherCallback); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::NewL +// other items were commented in a header +// --------------------------------------------------------------------------- +CAtSmsNack* CAtSmsNack::NewL(CGlobalPhonemanager& aGloblePhone, + CCtsyDispatcherCallback& aCtsyDispatcherCallback) + { + CAtSmsNack* self=CAtSmsNack::NewLC(aGloblePhone, + aCtsyDispatcherCallback); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::ConstructL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsNack::ConstructL() + { + CAtCommandBase::ConstructL(); + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::SetNackTpdu +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsNack::SetNackTpdu(TPtrC8 aRpError) + { + iRpError = aRpError; + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::StartRequest +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsNack::StartRequest() + { + ExecuteCommand(); + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::ExecuteCommand +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsNack::ExecuteCommand() + { + LOGTEXT(_L8("CAtSmsNack::ExecuteCommand called")); + iTxBuffer.Zero(); + TInt pduLen = iRpError.Length(); + TBuf8 nackAsciiData; + nackAsciiData.Zero(); + SmsAtUtil::AppendDataToAscii(nackAsciiData,iRpError); + iTxBuffer.Format(KCNMAForNack,pduLen); + iTxBuffer.Append(nackAsciiData); + iTxBuffer.Append(KLtsyCtrlZChar); + Write(); + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::EventSignal +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsNack::EventSignal(TAtEventSource aEventSource, TInt aStatus) +/** + * Handle the events from the comm port + *ValidateExpectString + * @param aSource denotes if event is due to read, write or timeout + */ + { + LOGTEXT3(_L8("CAtSmsNack::EventSignal iStatus=%D iSource=%D"),aStatus,aEventSource); + if(aStatus == KErrNone) + { + if((aEventSource == EWriteCompletion)) + { + LOGTEXT(_L8("CAtSmsNack::EventSignal,EWriteCompletion!")); + return; + } + aStatus = iError; + } + Complete(); + iPhoneGlobals.iEventSignalActive = EFalse; + iCtsyDispatcherCallback.CallbackSmsAckSmsStoredComp(aStatus); + } + +// --------------------------------------------------------------------------- +// CAtSmsNack::ParseResponseL +// other items were commented in a header +// --------------------------------------------------------------------------- +void CAtSmsNack::ParseResponseL(const TDesC8& /*aResponseBuf*/) + { + if (CurrentLine().Match(KLtsyOkString) == 0) + { + iError = KErrNone; + } + else + { + iError = KErrGeneral; + } + } + +//End of file