paludis  Version 2.6.0
name-fwd.hh
Go to the documentation of this file.
1 /* vim: set sw=4 sts=4 et foldmethod=syntax : */
2 
3 /*
4  * Copyright (c) 2005, 2006, 2007, 2008, 2010 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_NAME_FWD_HH
21 #define PALUDIS_GUARD_PALUDIS_NAME_FWD_HH 1
22 
23 #include <paludis/util/wrapped_value-fwd.hh>
24 #include <paludis/util/set-fwd.hh>
27 #include <iosfwd>
28 
29 /** \file
30  * Forward declarations for paludis/name.hh .
31  *
32  * \ingroup g_names
33  */
34 
35 namespace paludis
36 {
37  class PackageNamePartTag;
38  class PackageNamePartError;
39  template <> struct WrappedValueTraits<PackageNamePartTag>;
40 
41  /**
42  * A PackageNamePart holds a std::string that is a valid name for the
43  * package part of a QualifiedPackageName.
44  *
45  * \ingroup g_names
46  */
48 
50 
51  class CategoryNamePartTag;
53  template <> struct WrappedValueTraits<CategoryNamePartTag>;
54 
55  /**
56  * A CategoryNamePart holds a std::string that is a valid name for the
57  * category part of a QualifiedPackageName.
58  *
59  * \ingroup g_names
60  */
62 
64 
66 
67  /**
68  * Output a QualifiedPackageName to a stream.
69  *
70  * \ingroup g_names
71  */
72  std::ostream & operator<< (std::ostream &, const QualifiedPackageName &) PALUDIS_VISIBLE;
73 
74  /**
75  * A CategoryNamePart plus a PackageNamePart is a QualifiedPackageName.
76  *
77  * \ingroup g_names
78  */
79  inline const QualifiedPackageName
80  operator+ (const CategoryNamePart & c, const PackageNamePart & p) PALUDIS_ATTRIBUTE((warn_unused_result));
81 
82  class SlotNameTag;
83  class SlotNameError;
84  template <> struct WrappedValueTraits<SlotNameTag>;
85 
87 
88  /**
89  * A SlotName holds a std::string that is a valid name for a SLOT.
90  *
91  * \ingroup g_names
92  */
93  typedef WrappedValue<SlotNameTag> SlotName;
94 
95  class RepositoryNameTag;
96  class RepositoryNameError;
97  template <> struct WrappedValueTraits<RepositoryNameTag>;
98 
99  /**
100  * A RepositoryName holds a std::string that is a valid name for a
101  * Repository.
102  *
103  * \ingroup g_names
104  */
105  typedef WrappedValue<RepositoryNameTag> RepositoryName;
106 
107  typedef Set<RepositoryName> RepositoryNameSet;
108 
109  class KeywordNameTag;
110  class KeywordNameError;
111  template <> struct WrappedValueTraits<KeywordNameTag>;
112 
113  /**
114  * A KeywordName holds a std::string that is a valid name for a KEYWORD.
115  *
116  * \ingroup g_names
117  */
118  typedef WrappedValue<KeywordNameTag> KeywordName;
119 
120  typedef Set<KeywordName> KeywordNameSet;
121 
122  class SetNameTag;
123  class SetNameError;
124  template <> struct WrappedValueTraits<SetNameTag>;
125 
126  /**
127  * A SetName holds a std::string that is a valid name for a set.
128  *
129  * \ingroup g_names
130  */
131  typedef WrappedValue<SetNameTag> SetName;
132 
133  typedef Set<SetName> SetNameSet;
134 
135  class PartNameTag;
136  class PartNameError;
137  template <> struct WrappedValueTraits<PartNameTag>;
138 
139  /**
140  * A PartName holds a std::string that is a valid name for a part.
141  *
142  * \ingroup g_names
143  */
144  typedef WrappedValue<PartNameTag> PartName;
145 }
146 
147 #endif
Definition: about_metadata-fwd.hh:23
WrappedValue< PackageNamePartTag > PackageNamePart
Definition: name-fwd.hh:47
Definition: name.hh:110
Definition: name.hh:150
Definition: wrapped_value-fwd.hh:32
WrappedValue< CategoryNamePartTag > CategoryNamePart
Definition: name-fwd.hh:61
std::ostream & operator<<(std::ostream &, const WantPhase &) PALUDIS_VISIBLE
Definition: name.hh:228
Definition: name.hh:253
Definition: set-fwd.hh:35
Definition: name.hh:176
Definition: name.hh:202
Definition: name.hh:82
#define PALUDIS_ATTRIBUTE(x)
Definition: attributes.hh:53
#define PALUDIS_VISIBLE
Definition: attributes.hh:59