paludis Version 3.0.2
The one true package mangler
elike_slot_requirement.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_ELIKE_SLOT_REQUIREMENT_HH
21#define PALUDIS_GUARD_PALUDIS_ELIKE_SLOT_REQUIREMENT_HH 1
22
23#include <paludis/elike_slot_requirement-fwd.hh>
24#include <paludis/slot_requirement.hh>
25#include <paludis/name.hh>
26
27namespace paludis
28{
29 class PALUDIS_VISIBLE ELikeSlotExactFullRequirement :
31 {
32 private:
33 const std::pair<SlotName, SlotName> _s;
34 const std::shared_ptr<const SlotRequirement> _maybe_original_requirement_if_rewritten;
35
36 public:
37 ELikeSlotExactFullRequirement(const std::pair<SlotName, SlotName> &, const std::shared_ptr<const SlotRequirement> &);
38
39 const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result));
40 const std::shared_ptr<const SlotRequirement> maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result));
41 const std::pair<SlotName, SlotName> slots() const override PALUDIS_ATTRIBUTE((warn_unused_result));
42 };
43
44 class PALUDIS_VISIBLE ELikeSlotExactPartialRequirement :
46 {
47 private:
48 const SlotName _s;
49 const std::shared_ptr<const SlotRequirement> _maybe_original_requirement_if_rewritten;
50
51 public:
52 ELikeSlotExactPartialRequirement(const SlotName &, const std::shared_ptr<const SlotRequirement> &);
53
54 const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result));
55 const std::shared_ptr<const SlotRequirement> maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result));
56 const SlotName slot() const override PALUDIS_ATTRIBUTE((warn_unused_result));
57 };
58
61 {
62 public:
63 const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result));
64 const std::shared_ptr<const SlotRequirement> maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result));
65 };
66
69 {
70 public:
71 const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result));
72 const std::shared_ptr<const SlotRequirement> maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result));
73 };
74
75 class PALUDIS_VISIBLE ELikeSlotAnyPartialLockedRequirement :
77 {
78 private:
79 const SlotName _s;
80
81 public:
82 ELikeSlotAnyPartialLockedRequirement(const SlotName &);
83
84 const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result));
85 const std::shared_ptr<const SlotRequirement> maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result));
86 const SlotName slot() const override PALUDIS_ATTRIBUTE((warn_unused_result));
87 };
88
89 class PALUDIS_VISIBLE ELikeSlotUnknownRewrittenRequirement :
91 {
92 private:
93 const SlotName _s;
94
95 public:
96 ELikeSlotUnknownRewrittenRequirement(const SlotName &);
97
98 const std::string as_string() const override PALUDIS_ATTRIBUTE((noreturn));
99 const std::shared_ptr<const SlotRequirement> maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result));
100 const SlotName slot() const override PALUDIS_ATTRIBUTE((warn_unused_result));
101 };
102}
103
104#endif
Definition elike_slot_requirement.hh:69
const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::shared_ptr< const SlotRequirement > maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::shared_ptr< const SlotRequirement > maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const SlotName slot() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result))
Definition elike_slot_requirement.hh:61
const std::shared_ptr< const SlotRequirement > maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::pair< SlotName, SlotName > slots() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::shared_ptr< const SlotRequirement > maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::string as_string() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::shared_ptr< const SlotRequirement > maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const SlotName slot() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const SlotName slot() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::shared_ptr< const SlotRequirement > maybe_original_requirement_if_rewritten() const override PALUDIS_ATTRIBUTE((warn_unused_result))
const std::string as_string() const override PALUDIS_ATTRIBUTE((noreturn))
Definition slot_requirement.hh:105
Definition slot_requirement.hh:117
Definition slot_requirement.hh:134
Definition slot_requirement.hh:88
Definition slot_requirement.hh:70
Definition slot_requirement.hh:41
Definition slot_requirement.hh:148
WrappedValue< SlotNameTag > SlotName
Definition name-fwd.hh:93
#define PALUDIS_ATTRIBUTE(x)
Definition attributes.hh:53
#define PALUDIS_VISIBLE
Definition attributes.hh:59
Definition about_metadata-fwd.hh:24