00001 #ifndef OrderReverser_HPP 00002 #define OrderReverser_HPP 00003 00008 #include "common.hpp" 00009 #include "io/input/transaction_reader/TransactionReader.hpp" 00010 #include <algorithm> 00011 00014 template < class T_R = TransactionReader<> > 00015 class OrderReverser : public T_R 00016 { 00017 public: 00018 typedef typename T_R::params_t params_t; 00019 OrderReverser( const params_t* par ) : T_R(par){} 00020 00021 template <class BIS> counter_t nextTransactionBIS( BIS& transaction ) 00022 { 00023 counter_t return_value = T_R::nextTransactionBIS(transaction); 00024 std::reverse(transaction.begin(), transaction.end()); 00025 return return_value; 00026 } 00027 }; 00028 00029 #endif