00001 /************************************************************************** 00002 * Copyright (c) 2007 Clifford Conley Owens III * 00003 * * 00004 * This file is part of Biorithm. * 00005 * * 00006 * Biorithm is free software: you can redistribute it and/or modify * 00007 * it under the terms of the GNU General Public License as published by * 00008 * the Free Software Foundation, either version 3 of the License, or * 00009 * (at your option) any later version. * 00010 * * 00011 * Biorithm is distributed in the hope that it will be useful, * 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00014 * GNU General Public License for more details. * 00015 * * 00016 * You should have received a copy of the GNU General Public License * 00017 * along with Biorithm. If not, see <http://www.gnu.org/licenses/>. * 00018 * * 00019 **************************************************************************/ 00020 00032 #ifndef FILTERPOOL_H 00033 #define FILTERPOOL_H 00034 00035 // ---------------------------- Internal Headers ---------------------------- // 00036 00037 #include "cnull.h" 00038 #include "Filter.h" 00039 00040 // ---------------------------- External Headers ---------------------------- // 00041 #include <list> 00042 00049 class FilterPool: public Monitorable 00050 { 00051 protected: 00052 // The current position in the file 00053 unsigned int current; 00054 00055 // The number of lines in a file 00056 unsigned int numlines; 00057 00058 // The list of filters 00059 list <Filter*> filters; 00060 00061 // Helper methods 00062 virtual void parseCols(ItemSet& is, const char* line); 00063 00064 public: 00065 FilterPool(); 00066 FilterPool(const FilterPool& src); 00067 virtual ~FilterPool(); 00068 virtual FilterPool& operator =(const FilterPool& rhs); 00069 virtual void filter(TruthMatrix& tm, bool forward = true); 00070 virtual void insert(Filter* filter); 00071 virtual void destroy(); 00072 virtual bool empty() const; 00073 }; 00074 00075 #endif