00001 #ifndef NonOptDFOutput_HPP 00002 #define NonOptDFOutput_HPP 00003 00011 #include <vector> 00012 00013 #include "io/output/OutputBase.hpp" 00014 00016 static volatile int dummy; 00017 00018 namespace bracz 00019 { 00025 template <class FR> 00026 class NonOptDFOutput : public OutputBase<FR> 00027 { 00028 public: 00029 00030 typedef typename OutputBase<FR>::params_t params_t; 00031 NonOptDFOutput(const params_t* par) 00032 : OutputBase<FR>(par){ 00033 } 00034 00035 ~NonOptDFOutput() { 00036 dummy=dummysum; 00037 } 00038 00039 static bool DINLINE isDFO() 00040 { 00041 return true; 00042 } 00043 00044 void pushItem(item_t item) 00045 { 00046 dummysum+=item; 00047 } 00048 00049 void write(counter_t support) 00050 { 00051 dummysum+=support; 00052 last_support=support; 00053 } 00054 00055 void pushItemWithWrite(item_t item, counter_t support) 00056 { 00057 pushItem(item); 00058 write(support); 00059 } 00060 00061 void pushItemWithPrevSupport(item_t item) 00062 { 00063 pushItemWithWrite(item, last_support); 00064 } 00065 00066 void popItem() 00067 { 00068 dummysum++; 00069 } 00070 00071 void popAll() { 00072 dummysum++; 00073 } 00074 00075 private: 00076 int dummysum; 00077 counter_t last_support; 00078 00079 }; 00080 } 00081 #endif