// Iffy // // Douglas Thrift // // $Id$ #ifndef _Cleaner_hpp_ #define _Cleaner_hpp_ #include "Tag.hpp" #ifdef MENES_PRAGMA_ONCE #pragma once #endif enum SegmentType { TEXT, TAG }; struct Segment { SegmentType type; ext::String text; Tag tag; Segment() : type(TEXT) {} Segment(const ext::String& text) : type(TEXT), text(text) {} Segment(const Tag& tag) : type(TAG), tag(tag) {} }; class Cleaner { private: ext::Vector segments; public: template void insert(const Type& type) { segments.InsertLast(type); } void clean(); // friends: friend ios::PrintWriter& operator<<(ios::PrintWriter& pout, const Cleaner& cleaner); }; #endif // _Cleaner_hpp_