00001 /* 00002 * Copyright (c) 2004 CSIRO ICT Centre 00003 * 00004 * $Id: NestedLoopFilter.h 587 2004-12-03 15:06:33Z nch $ 00005 */ 00006 00007 /* 00008 * NestedLoopFilter implements Filter using a simple nested 00009 * loop algorithm. This is not supposed to be efficient. It is our 00010 * baseline implementation against which we check the correctness and 00011 * compare the efficiency of other implementations. It's not advisable 00012 * to run this filter on large data sets. 00013 */ 00014 00015 #ifndef NESTEDLOOPFILTER_DEFINED 00016 #define NESTEDLOOPFILTER_DEFINED 00017 00018 #include <list> 00019 #include "String.h" 00020 00021 #include "Filter.h" 00022 00023 00024 class NestedLoopFilter : public Filter 00025 { 00026 public: 00027 NestedLoopFilter(Matcher * matcher); 00028 virtual ~NestedLoopFilter(); 00029 virtual String const & getName() const { return name(); }; 00030 virtual void filter(); 00031 00032 static String const & name() { return s_name; }; 00033 00034 private: 00035 static String s_name; 00036 00037 NestedLoopFilter(); 00038 NestedLoopFilter(NestedLoopFilter const &); 00039 NestedLoopFilter & operator=(NestedLoopFilter const &); 00040 }; 00041 00042 #endif // ifndef NESTEDLOOPFILTER_DEFINED 00043