--- 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