diff -r 6bcc0aa4be39 -r 889504eac4fb xml/xmlparser/src/CXMLObserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml/xmlparser/src/CXMLObserver.cpp Tue Aug 31 17:02:56 2010 +0300 @@ -0,0 +1,168 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: ?Description +* +*/ + + + +#include "CXMLObserver.h" + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CXMLObserver::CXMLObserver +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CXMLObserver::CXMLObserver() + { + + } + +// ----------------------------------------------------------------------------- +// CXMLObserver::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CXMLObserver::ConstructL() + { + iCurrentAttribute = new(ELeave) TPtrC(); + iAttributes = CXMLAttributes::NewL(); + iDescElements = new (ELeave) CDesCArraySeg(1); + iNSextensions = new (ELeave) CDesCArraySeg(1); + iURIs = new (ELeave) CDesCArraySeg(1); + iContentHandler = NULL; + iBinaryContentHandler = NULL; + } + +// ----------------------------------------------------------------------------- +// CXMLObserver::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CXMLObserver* CXMLObserver::NewL() + { + CXMLObserver* self = new( ELeave ) CXMLObserver(); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + + return self; + } + + +// ----------------------------------------------------------------------------- +// CXMLObserver::~CXMLObserver +// Destructor. +// ----------------------------------------------------------------------------- +// +CXMLObserver::~CXMLObserver() + { + if (iCurrentAttribute) + { + delete iCurrentAttribute; + } + if(iAttributes) + { + delete iAttributes; + } + if(iDescElements) + { + delete iDescElements; + } + if(iNSextensions) + { + delete iNSextensions; + } + if(iURIs) + { + delete iURIs; + } + } + +// ----------------------------------------------------------------------------- +// CXMLObserver::SetElement +// +// ----------------------------------------------------------------------------- +// +void CXMLObserver::SetElementL(const TPtrC &aName) +{ + if(iDescElements) + { + iDescElements->AppendL(aName); + } +} + +// ----------------------------------------------------------------------------- +// CXMLObserver::GetElement +// +// ----------------------------------------------------------------------------- +// +TPtrC CXMLObserver::GetElement() const +{ + TInt wIndex = iDescElements->Count()-1; + if(wIndex < 0) + { + TPtrC wEmpty = _L(" "); + return wEmpty; + + } + return iDescElements->MdcaPoint(wIndex); +} + +// ----------------------------------------------------------------------------- +// CXMLObserver::GetElement +// +// ----------------------------------------------------------------------------- +// +void CXMLObserver::RemoveElement() +{ + TInt wIndex = iDescElements->Count()-1; + if(wIndex > -1) + { + iDescElements->Delete(wIndex); + iDescElements->Compress(); + } +} + +void CXMLObserver::SetURIL(const TPtrC &aURI, const TPtrC &aNSextension) +{ + iNSextensions->AppendL(aNSextension); + iURIs->AppendL(aURI); +} + +TPtrC CXMLObserver::GetURI(const TPtrC &aNSextension) const +{ + TInt wIndex = 0; + TInt wRes = 0; + + wRes = iNSextensions->Find(aNSextension,wIndex); + if(wRes != 0) + { + TPtrC wEmpty = _L(" "); + return wEmpty; + } + return iURIs->MdcaPoint(wIndex); +} +void CXMLObserver::ResetURI() +{ + iNSextensions->Reset(); + iURIs->Reset(); +} + +// End of File