Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

TagcollFilter.h

Go to the documentation of this file.
00001 #ifndef TAGCOLL_TAGCOLLFILTER_H
00002 #define TAGCOLL_TAGCOLLFILTER_H
00003 
00004 /*
00005  * Filter interface for a stream of tagged items
00006  *
00007  * Copyright (C) 2003  Enrico Zini <enrico@debian.org>
00008  *
00009  * This library is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU Lesser General Public
00011  * License as published by the Free Software Foundation; either
00012  * version 2.1 of the License, or (at your option) any later version.
00013  *
00014  * This library is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017  * Lesser General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU Lesser General Public
00020  * License along with this library; if not, write to the Free Software
00021  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00022  */
00023 
00024 #pragma interface
00025 
00026 #include <tagcoll/TagcollConsumer.h>
00027 
00028 namespace Tagcoll
00029 {
00030 
00031 // Interface for filters to be used to filter the results of a tagged
00032 // collection file parser
00033 template<class ITEM, class TAG = std::string>
00034 class TagcollFilter : public TagcollConsumer<ITEM, TAG>
00035 {
00036 protected:
00037     TagcollConsumer<ITEM, TAG>* consumer;
00038 
00039 public:
00040     TagcollFilter() throw () : consumer(0) {}
00041     TagcollFilter(TagcollConsumer<ITEM, TAG>* consumer) throw () : consumer(consumer) {}
00042 
00043     TagcollConsumer<ITEM, TAG>* getConsumer() const throw () { return consumer; }
00044     void setConsumer(TagcollConsumer<ITEM, TAG>* consumer) throw () { this->consumer = consumer; }
00045 };
00046 
00047 };
00048 
00049 // vim:set ts=4 sw=4:
00050 #endif

Generated on Wed Nov 17 19:45:59 2004 for libtagcoll by  doxygen 1.3.9.1