Node.h Source File

メインページ 名前空間一覧 クラス階層 構成 ファイル一覧 名前空間メンバ 構成メンバ ファイルメンバ

# Node.h

解説を見る。

    00001 // -*- mode: c++ -*-
    00002
    00003 #ifndef MIX_NODE_H_
    00004 #define MIX_NODE_H_
    00005
    00006 #include "classes.h"
    00007 #include "misc.h"
    00008 #include "DefaultXMLTraits.h"
    00009
    00010 namespace MiX{
    00011
    00012   template <class charT,class char_traits,class xml_traits>
    00013   class Node{
    00014   public:
    00015     MiX_Template_Typedef(charT,char_traits,xml_traits);
    00016     typedef typename nodelist_type::iterator nodelist_iter;
    00017     typedef NamedNode<charT,char_traits,xml_traits> this_type;
    00018     typedef NodeContainer<charT,char_traits,xml_traits> nodecontainer_type;
    00019   private:
    00020     NodeContainer<charT,char_traits,xml_traits>* parent_;
    00021   protected:
    00027     Node(const this_type& src){ };
    00029     Node(){ parent_ = 0; };
    00031     void setParent(nodecontainer_type& parent){ parent_ = &parent; };
    00032   public:
    00034     virtual ~Node()throw();
    00036     virtual void destroy()throw() { delete this; } ;
    00038     const nodecontainer_type& getParent() const;
    00040     nodecontainer_type& getParent();
    00042     virtual NodeType getType() const = 0;
    00044     virtual string_type toString(bool indent=false,int indent_off=0)const = 0;
    00046     virtual node_type& clone(nodecontainer_type& parent,const nodelist_iter& it) const=0;
    00047     friend class DOM_Parser<charT,char_traits,xml_traits>;
    00048     friend class NodeContainer<charT,char_traits,xml_traits>;
    00049   };
    00050 }
    00051
    00052 #ifndef MIX_NODE_CPP_
    00053 #include "Node.cpp"
    00054 #endif
    00055
    00056 #endif