00001 /*MT* 00002 00003 MediaTomb - http://www.mediatomb.cc/ 00004 00005 node.h - this file is part of MediaTomb. 00006 00007 Copyright (C) 2005 Gena Batyan <bgeradz@mediatomb.cc>, 00008 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc> 00009 00010 Copyright (C) 2006-2010 Gena Batyan <bgeradz@mediatomb.cc>, 00011 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>, 00012 Leonhard Wimmer <leo@mediatomb.cc> 00013 00014 MediaTomb is free software; you can redistribute it and/or modify 00015 it under the terms of the GNU General Public License version 2 00016 as published by the Free Software Foundation. 00017 00018 MediaTomb is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 GNU General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 version 2 along with MediaTomb; if not, write to the Free Software 00025 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 00026 00027 $Id: node.h 2081 2010-03-23 20:18:00Z lww $ 00028 */ 00029 00031 00032 #ifndef __MXML_NODE_H__ 00033 #define __MXML_NODE_H__ 00034 00035 #include "zmmf/zmmf.h" 00036 00037 #include "mxml.h" 00038 00039 00040 namespace mxml 00041 { 00042 00043 enum mxml_node_types 00044 { 00045 mxml_node_all, 00046 mxml_node_element, 00047 mxml_node_text, 00048 mxml_node_comment, 00049 mxml_node_document 00050 }; 00051 00052 class Node : public zmm::Object 00053 { 00054 protected: 00055 zmm::Ref<zmm::Array<Node> > children; 00056 zmm::Ref<Context> context; 00057 enum mxml_node_types type; 00058 00059 public: 00060 enum mxml_node_types getType() { return type; } 00061 virtual zmm::String print(); 00062 00063 virtual void print_internal(zmm::Ref<zmm::StringBuffer> buf, int indent) = 0; 00064 protected: 00065 static zmm::String escape(zmm::String str); 00066 }; 00067 00068 00069 } // namespace 00070 00071 #endif // __MXML_NODE_H__
1.6.1