1 2 /****************************************************** 3 * Presage, an extensible predictive text entry system 4 * --------------------------------------------------- 5 * 6 * Copyright (C) 2008 Matteo Vescovi <matteo.vescovi@yahoo.co.uk> 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License along 19 with this program; if not, write to the Free Software Foundation, Inc., 20 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 * 22 **********(*)*/ 23 24 25 #ifndef PRESAGE_COMBINER 26 #define PRESAGE_COMBINER 27 28 #if HAVE_CONFIG_H 29 # include "config.h" 30 #endif 31 32 #include "prediction.h" 33 34 35 /** Combiner interface 36 * 37 * A combiner takes one or more predictions and combines them into a single prediction. 38 * 39 */ 40 class Combiner { 41 public: 42 Combiner(); 43 virtual ~Combiner(); 44 virtual Prediction combine(const std::vector<Prediction>&) = 0; 45 46 protected: 47 virtual Prediction filter(const Prediction& prediction) const; 48 49 }; 50 51 #endif // PRESAGE_COMBINER 52