00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PALUDIS_GUARD_PALUDIS_FILTERED_GENERATOR_HH
00021 #define PALUDIS_GUARD_PALUDIS_FILTERED_GENERATOR_HH 1
00022
00023 #include <paludis/filtered_generator-fwd.hh>
00024 #include <paludis/util/private_implementation_pattern.hh>
00025 #include <paludis/filter-fwd.hh>
00026 #include <paludis/generator-fwd.hh>
00027
00028 namespace paludis
00029 {
00030 class PALUDIS_VISIBLE FilteredGenerator :
00031 private PrivateImplementationPattern<FilteredGenerator>
00032 {
00033 public:
00034 FilteredGenerator(const FilteredGenerator &);
00035 FilteredGenerator(const Generator &, const Filter &);
00036 FilteredGenerator(const FilteredGenerator &, const Filter &);
00037 FilteredGenerator & operator= (const FilteredGenerator &);
00038 ~FilteredGenerator();
00039
00040 const Generator & generator() const PALUDIS_ATTRIBUTE((warn_unused_result));
00041 const Filter & filter() const PALUDIS_ATTRIBUTE((warn_unused_result));
00042 };
00043
00044 #ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
00045 extern template class PrivateImplementationPattern<FilteredGenerator>;
00046 #endif
00047 }
00048
00049 #endif