williamr@2: /* williamr@2: * Copyright (c) 2004-2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Node list implementation functions williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #ifndef XMLENGINE_NODELIST_IMPL_H_INCLUDED williamr@2: #define XMLENGINE_NODELIST_IMPL_H_INCLUDED williamr@2: williamr@2: #include <e32def.h> williamr@2: #include "xmlengnode.h" williamr@2: williamr@2: /** williamr@2: * Class implements list container. williamr@2: * williamr@2: * @lib XmlEngineDOM.lib williamr@2: * @since S60 v3.2 williamr@2: */ williamr@2: class RXmlEngNodeListImpl williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Default constructor williamr@2: * williamr@2: * @since S60 v3.2 williamr@2: */ williamr@2: IMPORT_C RXmlEngNodeListImpl(); williamr@2: williamr@2: /** williamr@2: * Closes node list williamr@2: * williamr@2: * @since S60 v3.2 williamr@2: */ williamr@2: IMPORT_C void Close(); williamr@2: williamr@2: /** williamr@2: * Get list length. williamr@2: * williamr@2: * @since S60 v3.2 williamr@2: * @return Number of nodes in a node list williamr@2: */ williamr@2: IMPORT_C TInt Count() const; williamr@2: williamr@2: /** williamr@2: * Checks whether next node exists in a node list williamr@2: * williamr@2: * @since S60 v3.2 williamr@2: * @return TRUE if next node exists, FALSE otherwise williamr@2: */ williamr@2: IMPORT_C TBool HasNext() const; williamr@2: williamr@2: /** williamr@2: * Retrieves next node from a node list williamr@2: * williamr@2: * @since S60 v3.2 williamr@2: * @return Next node williamr@2: */ williamr@2: IMPORT_C TXmlEngNode Next(); williamr@2: williamr@2: /** williamr@2: * Opens node. williamr@2: * williamr@2: * @since S60 v3.2 williamr@2: * @param aHead node pointer to the node from which the searching williamr@2: of list elements is started williamr@2: * @param aType type of list elements williamr@2: * @param aName name of list elements williamr@2: * @param aNs namespace of list elements williamr@2: * williamr@2: * @note If aType is NULL, aName and aNs are ignored williamr@2: */ williamr@2: void OpenL( williamr@2: void* aHead, williamr@2: TXmlEngNode::TXmlEngDOMNodeType aType, williamr@2: const TDesC8& aName = KNullDesC8, williamr@2: const TDesC8& aNs = KNullDesC8); williamr@2: williamr@2: /** williamr@2: * Opens node. williamr@2: * williamr@2: * @since S60 v3.2 williamr@2: * @param aHead node pointer to the node from which the searching williamr@2: of list elements is started williamr@2: * @param aType type of list elements williamr@2: */ williamr@2: void Open( williamr@2: void* aHead, williamr@2: TXmlEngNode::TXmlEngDOMNodeType aType); williamr@2: williamr@2: private: williamr@2: williamr@2: void* FindNextNode(void* aCurrentNode) const; williamr@2: williamr@2: void* iCurrentNode; williamr@2: TInt iType; // NodeType:4 bits (0-3) & MatchName flag (bit 4) williamr@2: unsigned char* iName; williamr@2: unsigned char* iNsUri; williamr@2: }; williamr@2: williamr@2: TBool StrEqualOrNull(const void* aStr1, const void* aStr2); williamr@2: williamr@2: williamr@2: williamr@2: #endif /* XMLENGINE_NODELIST_IMPL_H_INCLUDED */