00001 // 00002 // aegis - project change supervisor 00003 // Copyright (C) 2005 Matthew Lee 00004 // Copyright (C) 2008 Peter Miller 00005 // 00006 // This program is free software; you can redistribute it and/or modify 00007 // it under the terms of the GNU General Public License as published by 00008 // the Free Software Foundation; either version 3 of the License, or 00009 // (at your option) any later version. 00010 // 00011 // This program is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 // GNU General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU General Public License 00017 // along with this program. If not, see 00018 // <http://www.gnu.org/licenses/>. 00019 // 00020 00021 #ifndef LIBAEGIS_XML_NODE_RSS_H 00022 #define LIBAEGIS_XML_NODE_RSS_H 00023 00024 #include <libaegis/xml_node.h> 00025 00026 // Forward declarations 00027 class output_ty; 00028 class xml_text_reader_by_node; 00029 00037 class xml_node_rss: 00038 public xml_node 00039 { 00040 public: 00044 virtual ~xml_node_rss(); 00045 00049 xml_node_rss(const xml_node_rss &arg); 00050 00054 virtual void element_begin(const nstring &name); 00055 00059 virtual void element_end(const nstring &name); 00060 00064 virtual void attribute(const nstring &name, const nstring &value); 00065 00066 protected: 00077 xml_node_rss(xml_text_reader_by_node &reader, const output::pointer &out); 00078 00082 void terminate_element_begin(); 00083 00088 const xml_text_reader_by_node &xml_reader; 00089 00093 output::pointer deeper; 00094 00104 bool begin_element_terminated; 00105 00110 bool xml_version_printed; 00111 00112 private: 00116 xml_node_rss(); 00117 00121 xml_node_rss &operator=(const xml_node_rss &); 00122 }; 00123 00124 #endif // LIBAEGIS_XML_NODE_RSS_H