00001 #ifndef _IT_BUS_PDK_XML_STREAM_NODE_ITERATOR_H_
00002 #define _IT_BUS_PDK_XML_STREAM_NODE_ITERATOR_H_
00003
00004
00005
00006
00007 #include <it_bus/qname.h>
00008 #include <it_bus/api_defines.h>
00009
00010 namespace IT_Bus
00011 {
00012 class XMLStreamNode;
00013
00014 class IT_BUS_XML_API XMLStreamNodeIterator
00015 {
00016 public:
00017
00018 XMLStreamNodeIterator();
00019
00020 XMLStreamNodeIterator(
00021 XMLStreamNode * parent_element
00022 );
00023
00024 virtual ~XMLStreamNodeIterator();
00025
00026 bool
00027 has_next();
00028
00029 XMLStreamNode *
00030 next();
00031
00032 XMLStreamNode *
00033 peek_next();
00034
00035 XMLStreamNode *
00036 get_parent() const;
00037
00038 XMLStreamNodeIterator &
00039 operator = (
00040 const XMLStreamNodeIterator& rhs
00041 );
00042
00043 XMLStreamNodeIterator(
00044 const XMLStreamNodeIterator& rhs
00045 );
00046
00047 private:
00048
00049 int m_idx;
00050
00051 int m_child_count;
00052
00053 XMLStreamNode * m_parent_element;
00054 };
00055 }
00056
00057 #endif