00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PALUDIS_GUARD_PALUDIS_DEP_LABEL_FWD_HH
00021 #define PALUDIS_GUARD_PALUDIS_DEP_LABEL_FWD_HH 1
00022
00023 #include <paludis/util/attributes.hh>
00024 #include <paludis/util/sequence-fwd.hh>
00025 #include <tr1/memory>
00026 #include <iosfwd>
00027
00028
00029
00030
00031
00032
00033
00034 namespace paludis
00035 {
00036 struct URILabel;
00037
00038 template <typename T_> struct ConcreteURILabel;
00039
00040 struct URIMirrorsThenListedLabelTag;
00041 typedef ConcreteURILabel<URIMirrorsThenListedLabelTag> URIMirrorsThenListedLabel;
00042
00043 struct URIMirrorsOnlyLabelTag;
00044 typedef ConcreteURILabel<URIMirrorsOnlyLabelTag> URIMirrorsOnlyLabel;
00045
00046 struct URIListedOnlyLabelTag;
00047 typedef ConcreteURILabel<URIListedOnlyLabelTag> URIListedOnlyLabel;
00048
00049 struct URIListedThenMirrorsLabelTag;
00050 typedef ConcreteURILabel<URIListedThenMirrorsLabelTag> URIListedThenMirrorsLabel;
00051
00052 struct URILocalMirrorsOnlyLabelTag;
00053 typedef ConcreteURILabel<URILocalMirrorsOnlyLabelTag> URILocalMirrorsOnlyLabel;
00054
00055 struct URIManualOnlyLabelTag;
00056 typedef ConcreteURILabel<URIManualOnlyLabelTag> URIManualOnlyLabel;
00057
00058
00059
00060
00061
00062
00063
00064 std::ostream & operator<< (std::ostream &, const URILabel &) PALUDIS_VISIBLE;
00065
00066 struct DependencyLabel;
00067 struct DependencySystemLabel;
00068 struct DependencyTypeLabel;
00069 struct DependencySuggestLabel;
00070 struct DependencyABIsLabel;
00071
00072
00073
00074
00075
00076
00077
00078 typedef Sequence<std::tr1::shared_ptr<const DependencyLabel> > DependencyLabelSequence;
00079
00080
00081
00082
00083
00084
00085
00086 typedef Sequence<std::tr1::shared_ptr<const DependencySystemLabel> > DependencySystemLabelSequence;
00087
00088
00089
00090
00091
00092
00093
00094 typedef Sequence<std::tr1::shared_ptr<const DependencyTypeLabel> > DependencyTypeLabelSequence;
00095
00096
00097
00098
00099
00100
00101
00102 typedef Sequence<std::tr1::shared_ptr<const DependencySuggestLabel> > DependencySuggestLabelSequence;
00103
00104
00105
00106
00107
00108
00109
00110 typedef Sequence<std::tr1::shared_ptr<const DependencyABIsLabel> > DependencyABIsLabelSequence;
00111
00112 template <typename T_, typename Category_> struct ConcreteDependencyLabel;
00113
00114 struct DependencyHostLabelTag;
00115
00116
00117
00118
00119
00120
00121
00122 typedef ConcreteDependencyLabel<DependencyHostLabelTag, DependencySystemLabel> DependencyHostLabel;
00123
00124 struct DependencyTargetLabelTag;
00125
00126
00127
00128
00129
00130
00131
00132 typedef ConcreteDependencyLabel<DependencyTargetLabelTag, DependencySystemLabel> DependencyTargetLabel;
00133
00134 struct DependencyBuildLabelTag;
00135
00136
00137
00138
00139
00140
00141
00142 typedef ConcreteDependencyLabel<DependencyBuildLabelTag, DependencyTypeLabel> DependencyBuildLabel;
00143
00144 struct DependencyRunLabelTag;
00145
00146
00147
00148
00149
00150
00151
00152 typedef ConcreteDependencyLabel<DependencyRunLabelTag, DependencyTypeLabel> DependencyRunLabel;
00153
00154 struct DependencyPostLabelTag;
00155
00156
00157
00158
00159
00160
00161
00162 typedef ConcreteDependencyLabel<DependencyPostLabelTag, DependencyTypeLabel> DependencyPostLabel;
00163
00164 struct DependencyInstallLabelTag;
00165
00166
00167
00168
00169
00170
00171
00172 typedef ConcreteDependencyLabel<DependencyInstallLabelTag, DependencyTypeLabel> DependencyInstallLabel;
00173
00174 struct DependencyCompileLabelTag;
00175
00176
00177
00178
00179
00180
00181
00182 typedef ConcreteDependencyLabel<DependencyCompileLabelTag, DependencyTypeLabel> DependencyCompileLabel;
00183
00184 struct DependencySuggestedLabelTag;
00185
00186
00187
00188
00189
00190
00191
00192 typedef ConcreteDependencyLabel<DependencySuggestedLabelTag, DependencySuggestLabel> DependencySuggestedLabel;
00193
00194 struct DependencyRecommendedLabelTag;
00195
00196
00197
00198
00199
00200
00201
00202 typedef ConcreteDependencyLabel<DependencyRecommendedLabelTag, DependencySuggestLabel> DependencyRecommendedLabel;
00203
00204 struct DependencyRequiredLabelTag;
00205
00206
00207
00208
00209
00210
00211
00212 typedef ConcreteDependencyLabel<DependencyRequiredLabelTag, DependencySuggestLabel> DependencyRequiredLabel;
00213
00214 struct DependencyAnyLabelTag;
00215
00216
00217
00218
00219
00220
00221
00222
00223 typedef ConcreteDependencyLabel<DependencyAnyLabelTag, DependencyABIsLabel> DependencyAnyLabel;
00224
00225 struct DependencyMineLabelTag;
00226
00227
00228
00229
00230
00231
00232
00233
00234 typedef ConcreteDependencyLabel<DependencyMineLabelTag, DependencyABIsLabel> DependencyMineLabel;
00235
00236 struct DependencyPrimaryLabelTag;
00237
00238
00239
00240
00241
00242
00243
00244
00245 typedef ConcreteDependencyLabel<DependencyPrimaryLabelTag, DependencyABIsLabel> DependencyPrimaryLabel;
00246
00247 struct DependencyABILabelTag;
00248
00249
00250
00251
00252
00253
00254
00255
00256 typedef ConcreteDependencyLabel<DependencyABILabelTag, DependencyABIsLabel> DependencyABILabel;
00257
00258
00259
00260
00261
00262
00263
00264 std::ostream & operator<< (std::ostream &, const DependencyLabel &) PALUDIS_VISIBLE;
00265
00266 struct ActiveDependencyLabels;
00267 }
00268
00269 #endif