diff -r 000000000000 -r e35f40988205 xml/xmldomandxpath/inc/xpath/xmlengnodeset.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml/xmldomandxpath/inc/xpath/xmlengnodeset.h Thu Dec 17 09:29:21 2009 +0200 @@ -0,0 +1,110 @@ +// Copyright (c) 2005-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: +// Node set functions +// + + + +/** + @file + @publishedAll + @released +*/ +#ifndef XMLENGNODESET_H +#define XMLENGNODESET_H + +#include + +/** +This class implements the node set container, which is one of the result type +in XPath. +*/ +class RXmlEngNodeSet +{ + friend class TXmlEngXPathEvaluator; + friend class RXmlEngXPathResult; + friend class RXmlEngXPathExpression; + +public: + /** Default constructor */ + IMPORT_C RXmlEngNodeSet(); + + /** + Frees any allocated resources. + + As a node set only refers to existing nodes in the DOM tree, no nodes are + freed. However, namespace declarations are copied into the node set and + these copies are indeed freed. + */ + IMPORT_C void Free(); + + /** Closes the node set. This simply calls Free(). */ + inline void Close(); + + /** + Initializes the node set to an empty state. + + @see Free() + + This method is used when preparing node sets that will be used with + RXmlEngXPathExpression::EvaluateWithDependenciesL(TXmlEngNode,RXmlEngNodeSet&) + and + TXmlEngXPathEvaluator::EvaluateWithDependenciesL(aExpression,aContextNode,aResolver,aDependents). + + @leave KErrNoMemory Memory allocation failure + @leave - Otherwise, any of the system wide errors. + */ + IMPORT_C void InitializeL(); + + /** + Gets the size of the node set + @return The number of nodes + */ + IMPORT_C TInt Length() const; + + /** + Checks whether a node is in the node set. + + @param aNode The node to check + @return ETrue if the node is in the node set, EFalse otherwise + */ + IMPORT_C TBool Contains(TXmlEngNode aNode) const; + + /** + Retrieves a node from the node set by index + + @param aIndex Node index ( 0 <= aIndex < Length() ) + @return The node + @leave KXmlEngErrWrongUseOfAPI aIndex is less than 0 or greater than + Length(), in debug builds only. + @leave - Otherwise, any of the system wide errors. + */ + IMPORT_C TXmlEngNode operator[](TInt aIndex) const; + +private: + /** + Constructor + @param aData Internal data pointer + */ + RXmlEngNodeSet(void* aData); + +private: + void* iInternal; + +}; + +#include + +#endif /* XMLENGNODESET_H */ +