00001 00008 #ifndef BufferedNormalOutput_HPP 00009 #define BufferedNormalOutput_HPP 00010 00011 00012 #include "util/Formatter.hpp" 00013 #include "io/output/BufferedOutput.hpp" 00014 #include "io/FDRepr.hpp" 00015 00017 template <class FR = FDRepr> 00018 class BufferedNormalOutput : public BufferedOutput<FR> 00019 { 00020 public: 00021 typedef typename BufferedOutput<FR>::params_t params_t; 00022 00023 BufferedNormalOutput(const params_t* par): 00024 BufferedOutput<FR>(par){} 00025 00026 00027 static bool DINLINE isDFO() 00028 { 00029 return false; 00030 } 00031 00032 00033 template <typename InputIterator> void writeItemsetAndCounter( 00034 InputIterator first, InputIterator last, 00035 counter_t support ) 00036 { 00037 register std::streamsize pos = this->buffer_size; 00038 Formatter::SupportToStringBack( support, this->buffer, pos ); 00039 Formatter::ItemsetToStringBack( first, last, this->buffer, pos); 00040 writeToFile( &(this->buffer[pos]), this->buffer_size - pos ); 00041 } 00042 }; 00043 00044 #endif