

/*!
  @author d金魚
  @since 2005/11/27
	@note
	licence:BSD Licence
	akaxiso2があるのでこれは作らないかもしれない･･･
*/


#ifndef DKUTIL_XML_ELEMENT_TRIE_HPP
#define DKUTIL_XML_ELEMENT_TRIE_HPP


#include <dkutil/dktl/utility.hpp>


namespace dkutil{



/**
listにひたすらデータをぶち込んで
ツリー構造をその要素毎で参照する形にするか？

XMLのツリー構造自体を作るか？

ただいま迷い中
*/
template<class STRING_T>
class xml_element_dictionary{
public:
	typedef STRING_T value_type;
	xml_element_dictionary(){
	
	}
	~xml_element_dictionary(){
		clear();
	}

	struct node_type{
		typedef std::set<node_type> container_type;
		value_type element;
		value_type data;
		//uint8 stop;
		
		container_type next;

		node_type() {
			//stop = false;
		}
		bool operator<(const node_type &x){
			return data < x.data;
		}

	};

	typedef std::set<node_type> container_type;
	struct iterator{
		iterator(){}
		container_type *pBase;
		container_type::iterator it;
		value_type &operator*(){
			return (*it).data;
		}
		iterator &operator()++{
			it++;
		}
		iterator &operator(int)++{
			operator()++;
		}

	};
	container_type mC;
	bool reset(){
		clear();

	}
	void clear_process(){
		node_type *np = mData;
		std::deque<node_type *>
		np
		

	}
	void clear(){
		mC.clear();
	}	
	void insert(){

	}
	///メモリの使用領域をコレクトする。
	void memory_collect(){
		
	}


};



}//end of dkutil namepsace

#endif //end of include once