--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/browserutilities/xmlparser/src/CXMLObserver.cpp Mon Mar 30 12:54:55 2009 +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