paludis  Version 2.6.0
generator_handler.hh
1 /* vim: set sw=4 sts=4 et foldmethod=syntax : */
2 
3 /*
4  * Copyright (c) 2008, 2011 Ciaran McCreesh
5  *
6  * This file is part of the Paludis package manager. Paludis is free software;
7  * you can redistribute it and/or modify it under the terms of the GNU General
8  * Public License version 2, as published by the Free Software Foundation.
9  *
10  * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
11  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13  * details.
14  *
15  * You should have received a copy of the GNU General Public License along with
16  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
17  * Place, Suite 330, Boston, MA 02111-1307 USA
18  */
19 
20 #ifndef PALUDIS_GUARD_PALUDIS_GENERATOR_HANDLER_HH
21 #define PALUDIS_GUARD_PALUDIS_GENERATOR_HANDLER_HH 1
22 
23 #include <paludis/generator_handler-fwd.hh>
24 #include <paludis/name-fwd.hh>
29 #include <memory>
30 
31 namespace paludis
32 {
34  {
35  protected:
36  virtual ~GeneratorHandler() = 0;
37 
38  public:
39  virtual std::shared_ptr<const RepositoryNameSet> repositories(
40  const Environment * const,
41  const RepositoryContentMayExcludes &) const
42  PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
43 
44  virtual std::shared_ptr<const CategoryNamePartSet> categories(
45  const Environment * const,
46  const std::shared_ptr<const RepositoryNameSet> &,
47  const RepositoryContentMayExcludes &) const
48  PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
49 
50  virtual std::shared_ptr<const QualifiedPackageNameSet> packages(
51  const Environment * const,
52  const std::shared_ptr<const RepositoryNameSet> &,
53  const std::shared_ptr<const CategoryNamePartSet> &,
54  const RepositoryContentMayExcludes &) const
55  PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
56 
57  virtual std::shared_ptr<const PackageIDSet> ids(
58  const Environment * const,
59  const std::shared_ptr<const RepositoryNameSet> &,
60  const std::shared_ptr<const QualifiedPackageNameSet> &,
61  const RepositoryContentMayExcludes &) const
62  PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
63 
64  virtual std::string as_string() const = 0;
65  };
66 
68  public GeneratorHandler
69  {
70  public:
71  virtual std::shared_ptr<const RepositoryNameSet> repositories(
72  const Environment * const env,
73  const RepositoryContentMayExcludes &) const;
74 
75  virtual std::shared_ptr<const CategoryNamePartSet> categories(
76  const Environment * const env,
77  const std::shared_ptr<const RepositoryNameSet> & repos,
78  const RepositoryContentMayExcludes &) const;
79 
80  virtual std::shared_ptr<const QualifiedPackageNameSet> packages(
81  const Environment * const env,
82  const std::shared_ptr<const RepositoryNameSet> & repos,
83  const std::shared_ptr<const CategoryNamePartSet> & cats,
84  const RepositoryContentMayExcludes &) const;
85 
86  virtual std::shared_ptr<const PackageIDSet> ids(
87  const Environment * const env,
88  const std::shared_ptr<const RepositoryNameSet> & repos,
89  const std::shared_ptr<const QualifiedPackageNameSet> & qpns,
90  const RepositoryContentMayExcludes &) const;
91  };
92 }
93 
94 #endif
Definition: about_metadata-fwd.hh:23
Definition: generator_handler.hh:67
Definition: environment.hh:200
Definition: options-fwd.hh:34
Definition: generator_handler.hh:33
#define PALUDIS_ATTRIBUTE(x)
Definition: attributes.hh:53
#define PALUDIS_VISIBLE
Definition: attributes.hh:59