paludis Version 3.0.2
The one true package mangler
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
31namespace 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 std::shared_ptr<const RepositoryNameSet> repositories(
72 const Environment * const env,
73 const RepositoryContentMayExcludes &) const override;
74
75 std::shared_ptr<const CategoryNamePartSet> categories(
76 const Environment * const env,
77 const std::shared_ptr<const RepositoryNameSet> & repos,
78 const RepositoryContentMayExcludes &) const override;
79
80 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 override;
85
86 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 override;
91 };
92}
93
94#endif
Definition generator_handler.hh:69
Definition environment.hh:203
Definition generator_handler.hh:34
#define PALUDIS_ATTRIBUTE(x)
Definition attributes.hh:53
#define PALUDIS_VISIBLE
Definition attributes.hh:59
Definition about_metadata-fwd.hh:24