diff -r 630d2f34d719 -r 07a122eea281 cbsref/telephonyrefplugins/atltsy/comms/src/stringparser.cpp --- a/cbsref/telephonyrefplugins/atltsy/comms/src/stringparser.cpp Tue Aug 31 16:23:08 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -// 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: -// CStringParser. -// - -//user include -#include "stringparser.h" -#include "mslogger.h" - -CStringParser* CStringParser::NewL(TInt aBufferSize) - { - LOGTEXT(_L8("[Ltsy] Starting CStringParser::NewL()")); - - CStringParser* self = CStringParser::NewLC(aBufferSize); - CleanupStack::Pop(self); - return self; - } - -CStringParser* CStringParser::NewLC(TInt aBufferSize) - { - LOGTEXT(_L8("[Ltsy] Starting CStringParser::NewLC()")); - - CStringParser* self = new (ELeave) CStringParser; - CleanupStack::PushL(self); - self->ConstructL(aBufferSize); - return self; - } - -CStringParser::~CStringParser() - { - User::Free(iBuffer); - } - -CStringParser::CStringParser() - { - } - -void CStringParser::ConstructL(TInt aBufferSize) - { - LOGTEXT(_L8("[Ltsy] Starting CStringParser::ConstructL()")); - CreateL(aBufferSize); - } - -TPtrC8 CStringParser::Buffer() const - { - return TPtrC8(iBuffer, iLastChar-iBuffer); - } - -TPtrC8 CStringParser::CurrentLine() const - { - TInt len=iLastChar-iLineStart; - if (len>0 && iInDelimiter) - len-=1; - return TPtrC8(iLineStart, len); - } - -void CStringParser::ClearBuffer() - { - iLastChar = iBuffer; - iLineStart = iBuffer; - iInDelimiter = ETrue; - } - -// -// Remove current line, which is always at the end of the buffer -// -void CStringParser::ClearCurrentLine() - { - iLastChar = iLineStart; - iInDelimiter = ETrue; - } - -void CStringParser::CreateL(TInt aBufSize) - { - iBuffer = (TText8*)User::AllocL(aBufSize); - iBufferEnd = (iBuffer+aBufSize)-1; - ClearBuffer(); - } - - -void CStringParser::SetReadLineNotify(MCommReadLineNotifier* aNofity) - { - iReadLineNotify = aNofity; - } - - -void CStringParser::ProcessReadString(const TDesC8& aReadString) - { - LOGTEXT(_L8("[Ltsy] Starting CStringParse::ProcessReadString()")); - LOGTEXT2(_L8("[Ltsy] Read String = %S"), &aReadString); - for (TInt nBufferOffset = 0; nBufferOffset < aReadString.Length(); nBufferOffset++) - { - TText8 tChar = aReadString[nBufferOffset]; - - // we have already found a char which is a delimiter of the Line - // so would dismiss any of delimiter following this one already found - if (iInDelimiter && (tChar == '\r' || tChar == '\n')) - { - continue; - } - - // move on lastchar - *iLastChar++ = tChar; - // Diacarding characters if our buffer was overflowed - if (iLastChar >= iBufferEnd) - { - iLastChar = iBufferEnd; - } - // we anyway to find out the delimiter and notify the obser the line was found - if (tChar == '\r' || tChar == '\n') - { - iInDelimiter = ETrue; - TPtrC8 tLine(CurrentLine()); - LOGTEXT2(_L8("[Ltsy] Line Content = %S"), &tLine); - TRAPD(err, iReadLineNotify->NotifyOneLineFoundL(KErrNone, tLine)); - if (err != KErrNone) - { - ClearCurrentLine(); - } - } - else - { - if(iInDelimiter) // the last char is a delimiter - { - iInDelimiter=EFalse; - iLineStart=iLastChar-1; - if(tChar == '>') - { - TPtrC8 tLine(CurrentLine()); - TRAPD(err, iReadLineNotify->NotifyOneLineFoundL(KErrNone, tLine)); - if (err != KErrNone) - { - ClearCurrentLine(); - } - } - } - } - } - LOGTEXT(_L8("[Ltsy] End CStringParse::ProcessReadString()")); - } -//End of file