--- a/remotestoragefw/webdavaccessplugin/src/rsfwlockqueryparser.cpp Mon Jan 18 21:00:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,436 +0,0 @@
-/*
-* Copyright (c) 2002-2004 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: Parse WebDAV LOCK method response body
- *
-*/
-
-
-// INCLUDE FILES
-#include "rsfwlockqueryparser.h"
-#include "rsfwdavfileinfo.h"
-#include "mdebug.h"
-
-// CONSTANTS
-_LIT(KTimeOutTag,"Second-");
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-CRsfwLockQueryParser* CRsfwLockQueryParser::NewLC()
- {
- CRsfwLockQueryParser* self = new(ELeave) CRsfwLockQueryParser;
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- }
-
-CRsfwLockQueryParser* CRsfwLockQueryParser::NewL()
- {
- CRsfwLockQueryParser* self = NewLC();
- CleanupStack::Pop(self);
- return self;
- }
-
-void CRsfwLockQueryParser::ConstructL()
- {
- /*
- iParseState = ELooking;
- */
- }
-
-CRsfwLockQueryParser::~CRsfwLockQueryParser()
- {
- delete iContentString;
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnStartDocumentL
-// This method is a callback to indicate the start of the document.
-// @param aDocParam Specifies the various parameters of the document.
-// @arg aDocParam.iCharacterSetName The character encoding of the document.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnStartDocumentL(
- const Xml::RDocumentParameters& /* aDocParam */,
- TInt /* aErrCode */)
- {
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnStartDocumentL
-// This method is a callback to indicate the end of the document.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnEndDocumentL(TInt aErrCode)
- {
- if (aErrCode)
- {
- User::Leave(aErrCode);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnStartElementL
-// This method is a callback to indicate an element has been parsed.
-// @param aElement is a handle to the element's details.
-// @param aAttributes contains the attributes for the element.
-// @param aErrorCode is the error code.
-// If this is not KErrNone then special action may be required.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnStartElementL(
- const Xml::RTagInfo& aElement,
- const Xml::RAttributeArray& /* aAttributes */,
- TInt aErrorCode)
- {
- _LIT8(KLockType, "locktype");
- _LIT8(KLockScope, "lockscope");
- _LIT8(KDepth, "depth");
- _LIT8(KTimeout, "timeout");
- _LIT8(KLockToken, "locktoken");
-
- if (aErrorCode)
- {
- User::Leave(aErrorCode);
- }
-
- switch (iParseState)
- {
- case ELockType:
- // Currently, write is the only acquired type, might change later
- break;
-
- case ELockScope:
- // Currently, exclusive is the only acquired type, might change later
- break;
-
- case EDepth:
- break;
-
- case ETimeout:
- break;
-
- case ELockToken:
- {
- _LIT8(KHref, "href");
- if (((aElement.LocalName()).DesC()).Compare(KHref) == 0)
- {
- iParseState = EHrefToken;
- }
- }
- break;
-
- case EHrefToken:
- break;
-
- case ELooking: // we are trying to find the next interesting tag
- if (((aElement.LocalName()).DesC()).Compare(KLockType) == 0)
- {
- iParseState = ELockType;
- }
- else if (((aElement.LocalName()).DesC()).Compare(KLockScope) == 0)
- {
- iParseState = ELockScope;
- }
- else if (((aElement.LocalName()).DesC()).Compare(KDepth) == 0)
- {
- iParseState = EDepth;
- }
- else if (((aElement.LocalName()).DesC()).Compare(KTimeout) == 0)
- {
- iParseState = ETimeout;
- }
- else if (((aElement.LocalName()).DesC()).Compare(KLockToken) == 0)
- {
- iParseState = ELockToken;
- }
- else
- {
- // lint
- }
- break;
-
- default:
- break;
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnEndElementL
-// This method is a callback to indicate that end of element has been reached.
-// @param aElement is a handle to the element's details.
-// @param aErrorCode is the error code.
-// If this is not KErrNone then special action may be required.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnEndElementL(const Xml::RTagInfo& /* aElement */,
- TInt aErrorCode)
- {
- if (aErrorCode)
- {
- User::Leave(aErrorCode);
- }
-
- // otherwise we will continue reading
- // if we have some interesting content
- if ((iParseState != ELooking) && !iContentString)
- {
- iParseState = ELooking;
- return;
- }
-
- switch (iParseState)
- {
- case ELockType:
- break;
-
- case ELockScope:
- break;
-
- case EDepth:
- {
- /*
- TPtrC aux;
- aux.Set(aBuf);
- TLex lex(aux);
- lex.Val(iDepth);
- */
- }
- break;
-
- case ETimeout:
- {
- if (iDavFileInfo)
- {
- _LIT8(KInfinite, "Infinite");
- if (iContentString->Compare(KInfinite) == 0)
- {
- iDavFileInfo->SetTimeout(KMaxTUint);
- }
- else
- {
- // We expect 'Second-x" where x a positive integer
- TInt timeout = 0;
- if (iContentString->Length() > KTimeOutTag().Length())
- {
- TPtrC8 aux;
- aux.Set(*iContentString);
- TLex8 lex(aux);
- lex.SkipAndMark(KTimeOutTag().Length());
- lex.Val(timeout);
- }
- iDavFileInfo->SetTimeout(timeout);
- }
- }
- }
- break;
-
- case ELockToken:
- break;
-
- case EHrefToken:
- if (iDavFileInfo)
- {
- iDavFileInfo->SetLockTokenL(*iContentString);
- }
- break;
-
- case ELooking:
- break;
-
- default:
- break;
- }
-
- delete iContentString;
- iContentString = NULL;
- iParseState = ELooking;
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnContentL
-// This method is a callback that sends the content of the element.
-// Not all the content may be returned in one go.
-// The data may be sent in chunks.
-// When an OnEndElementL is received there is no more content to be sent.
-// @param aBytes is the raw content data for the element.
-// The client is responsible for converting the data to the
-// required character set if necessary.
-// In some instances the content may be binary and must not be converted.
-// @param aErrorCode is the error code.
-// If this is not KErrNone then special action may be required.
-//
-void CRsfwLockQueryParser::OnContentL(const TDesC8& aBytes, TInt aErrorCode)
- {
- if (aErrorCode)
- {
- User::Leave(aErrorCode);
- }
-
- // We want to add to contentstring only if we are in a state
- // where the content is interesting to us
- if ((iParseState == ETimeout) || (iParseState == EHrefToken))
- {
- if (!iContentString)
- {
- iContentString = HBufC8::NewL(aBytes.Length());
- TPtr8 string = iContentString->Des();
- string.Append(aBytes);
- }
- else
- {
- iContentString =
- iContentString->ReAllocL(iContentString->Length() +
- aBytes.Length());
- TPtr8 string = iContentString->Des();
- string.Append(aBytes);
- }
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnStartPrefixMappingL
-// This method is a notification of the beginning of the scope of a prefix-URI
-// Namespace mapping.
-// This method is always called before corresponding OnStartElementL method.
-// @param aPrefix is the Namespace prefix being declared.
-// @param aUri is the Namespace URI the prefix is mapped to.
-// @param aErrorCode is the error code.
-// If this is not KErrNone then special action may be required.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnStartPrefixMappingL(const RString& /* aPrefix */,
- const RString& /* aUri */,
- TInt aErrorCode)
- {
- if (aErrorCode)
- {
- User::Leave(aErrorCode);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnEndPrefixMappingL
-// This method is a notification of end of the scope of a prefix-URI mapping.
-// This method is called after the corresponding DoEndElementL method.
-// @param aPrefix is the Namespace prefix that was mapped.
-// @param aErrorCode is the error code.
-// If this is not KErrNone then special action may be required.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnEndPrefixMappingL(const RString& /* aPrefix */,
- TInt aErrorCode)
- {
- if (aErrorCode)
- {
- User::Leave(aErrorCode);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnIgnorableWhiteSpaceL
-// This method is a notification of ignorable whitespace in element content.
-// @param aBytes are the ignored bytes from the document being parsed.
-// @param aErrorCode is the error code.
-// If this is not KErrNone then special action may be required.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnIgnorableWhiteSpaceL(const TDesC8& /* aBytes */,
- TInt aErrorCode)
- {
- if (aErrorCode)
- {
- User::Leave(aErrorCode);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnSkippedEntityL
-// This method is a notification of a skipped entity.
-// If the parser encounters an external entity it does not need to expand it -
-// it can return the entity as aName for the client to deal with.
-// @param aName is the name of the skipped entity.
-// @param aErrorCode is the error code.
-// If this is not KErrNone then special action may be required.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnSkippedEntityL(const RString& /* aName */,
- TInt aErrorCode)
- {
- if (aErrorCode)
- {
- User::Leave(aErrorCode);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnProcessingInstructionL
-// This method is a receive notification of a processing instruction.
-// @param aTarget is the processing instruction target.
-// @param aData is the processing instruction data. If empty none was supplied.
-// @param aErrorCode is the error code.
-// If this is not KErrNone then special action may be required.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::OnProcessingInstructionL(const TDesC8& /* aTarget */,
- const TDesC8& /* aData */,
- TInt aErrorCode)
- {
- if (aErrorCode)
- {
- User::Leave(aErrorCode);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::OnError
-// This method indicates an error has occurred.
-// @param aErrorCode is the error code
-// ----------------------------------------------------------------------------
-//
-
-void CRsfwLockQueryParser::OnError(TInt aErrorCode)
- {
- DEBUGSTRING(("CRsfwLockQueryParser::OnError(%d)", aErrorCode));
- iError = aErrorCode;
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::GetExtendedInterface
-// This method obtains the interface matching the specified uid.
-// @return 0 if no interface matching the uid is found.
-// Otherwise, the this pointer cast to that interface.
-// @param aUid the uid identifying the required interface.
-// ----------------------------------------------------------------------------
-//
-TAny* CRsfwLockQueryParser::GetExtendedInterface(const TInt32 /* aUid */)
- {
- return NULL;
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwLockQueryParser::SetFileDavInfo
-// Set a pointer to the directory information structure to be filled.
-// ----------------------------------------------------------------------------
-//
-void CRsfwLockQueryParser::SetDavFileInfo(CRsfwDavFileInfo* aDavFileInfo)
- {
- iDavFileInfo = aDavFileInfo;
- }
-
-TInt CRsfwLockQueryParser::GetLastError()
- {
- return iError;
- }
-
-// End of File