dep_label-fwd.hh

Go to the documentation of this file.
00001 /* vim: set sw=4 sts=4 et foldmethod=syntax : */
00002 
00003 /*
00004  * Copyright (c) 2007, 2008 Ciaran McCreesh
00005  *
00006  * This file is part of the Paludis package manager. Paludis is free software;
00007  * you can redistribute it and/or modify it under the terms of the GNU General
00008  * Public License version 2, as published by the Free Software Foundation.
00009  *
00010  * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
00011  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00012  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
00013  * details.
00014  *
00015  * You should have received a copy of the GNU General Public License along with
00016  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00017  * Place, Suite 330, Boston, MA  02111-1307  USA
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 /** \file
00029  * Forward declarations for paludis/dep_label.hh .
00030  *
00031  * \ingroup g_dep_spec
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      * A URILabel can be written to a stream.
00060      *
00061      * \ingroup g_dep_spec
00062      * \since 0.26
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      * A collection of DependencyLabel instances.
00074      *
00075      * \ingroup g_dep_spec
00076      * \since 0.26
00077      */
00078     typedef Sequence<std::tr1::shared_ptr<const DependencyLabel> > DependencyLabelSequence;
00079 
00080     /**
00081      * A collection of DependencySystemLabel instances.
00082      *
00083      * \ingroup g_dep_spec
00084      * \since 0.26
00085      */
00086     typedef Sequence<std::tr1::shared_ptr<const DependencySystemLabel> > DependencySystemLabelSequence;
00087 
00088     /**
00089      * A collection of DependencyTypeLabel instances.
00090      *
00091      * \ingroup g_dep_spec
00092      * \since 0.26
00093      */
00094     typedef Sequence<std::tr1::shared_ptr<const DependencyTypeLabel> > DependencyTypeLabelSequence;
00095 
00096     /**
00097      * A collection of DependencySuggestLabel instances.
00098      *
00099      * \ingroup g_dep_spec
00100      * \since 0.26
00101      */
00102     typedef Sequence<std::tr1::shared_ptr<const DependencySuggestLabel> > DependencySuggestLabelSequence;
00103 
00104     /**
00105      * A collection of DependencyABIsLabel instances.
00106      *
00107      * \ingroup g_dep_spec
00108      * \since 0.26
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      * A DependencyHostLabel specifies host requirements for building a package.
00118      *
00119      * \ingroup g_dep_spec
00120      * \since 0.26
00121      */
00122     typedef ConcreteDependencyLabel<DependencyHostLabelTag, DependencySystemLabel> DependencyHostLabel;
00123 
00124     struct DependencyTargetLabelTag;
00125 
00126     /**
00127      * A DependencyTargetLabel specifies target requirements for building a package.
00128      *
00129      * \ingroup g_dep_spec
00130      * \since 0.26
00131      */
00132     typedef ConcreteDependencyLabel<DependencyTargetLabelTag, DependencySystemLabel> DependencyTargetLabel;
00133 
00134     struct DependencyBuildLabelTag;
00135 
00136     /**
00137      * A DependencyBuildLabel specifies build-time requirements for building a package.
00138      *
00139      * \ingroup g_dep_spec
00140      * \since 0.26
00141      */
00142     typedef ConcreteDependencyLabel<DependencyBuildLabelTag, DependencyTypeLabel> DependencyBuildLabel;
00143 
00144     struct DependencyRunLabelTag;
00145 
00146     /**
00147      * A DependencyRunLabel specifies runtime requirements for building a package.
00148      *
00149      * \ingroup g_dep_spec
00150      * \since 0.26
00151      */
00152     typedef ConcreteDependencyLabel<DependencyRunLabelTag, DependencyTypeLabel> DependencyRunLabel;
00153 
00154     struct DependencyPostLabelTag;
00155 
00156     /**
00157      * A DependencyPostLabel specifies build-time requirements for building a package.
00158      *
00159      * \ingroup g_dep_spec
00160      * \since 0.26
00161      */
00162     typedef ConcreteDependencyLabel<DependencyPostLabelTag, DependencyTypeLabel> DependencyPostLabel;
00163 
00164     struct DependencyInstallLabelTag;
00165 
00166     /**
00167      * A DependencyInstallLabel specifies install-time requirements for building a package.
00168      *
00169      * \ingroup g_dep_spec
00170      * \since 0.26
00171      */
00172     typedef ConcreteDependencyLabel<DependencyInstallLabelTag, DependencyTypeLabel> DependencyInstallLabel;
00173 
00174     struct DependencyCompileLabelTag;
00175 
00176     /**
00177      * A DependencyCompileLabel specifies compiled-against requirements for building a package.
00178      *
00179      * \ingroup g_dep_spec
00180      * \since 0.26
00181      */
00182     typedef ConcreteDependencyLabel<DependencyCompileLabelTag, DependencyTypeLabel> DependencyCompileLabel;
00183 
00184     struct DependencySuggestedLabelTag;
00185 
00186     /**
00187      * A DependencySuggestLabel specifies that a dependency is suggested.
00188      *
00189      * \ingroup g_dep_spec
00190      * \since 0.26
00191      */
00192     typedef ConcreteDependencyLabel<DependencySuggestedLabelTag, DependencySuggestLabel> DependencySuggestedLabel;
00193 
00194     struct DependencyRecommendedLabelTag;
00195 
00196     /**
00197      * A DependencyRecommendedLabel specifies that a dependency is recommended.
00198      *
00199      * \ingroup g_dep_spec
00200      * \since 0.26
00201      */
00202     typedef ConcreteDependencyLabel<DependencyRecommendedLabelTag, DependencySuggestLabel> DependencyRecommendedLabel;
00203 
00204     struct DependencyRequiredLabelTag;
00205 
00206     /**
00207      * A DependencyRequiredLabel specifies that a dependency is required.
00208      *
00209      * \ingroup g_dep_spec
00210      * \since 0.26
00211      */
00212     typedef ConcreteDependencyLabel<DependencyRequiredLabelTag, DependencySuggestLabel> DependencyRequiredLabel;
00213 
00214     struct DependencyAnyLabelTag;
00215 
00216     /**
00217      * A DependencyAnyLabel specifies that a dependency can be satisfied by
00218      * any ABI.
00219      *
00220      * \ingroup g_dep_spec
00221      * \since 0.26
00222      */
00223     typedef ConcreteDependencyLabel<DependencyAnyLabelTag, DependencyABIsLabel> DependencyAnyLabel;
00224 
00225     struct DependencyMineLabelTag;
00226 
00227     /**
00228      * A DependencyMineLabel specifies that a dependency is satisfied by
00229      * ABIs equal to those being used to create the depending package.
00230      *
00231      * \ingroup g_dep_spec
00232      * \since 0.26
00233      */
00234     typedef ConcreteDependencyLabel<DependencyMineLabelTag, DependencyABIsLabel> DependencyMineLabel;
00235 
00236     struct DependencyPrimaryLabelTag;
00237 
00238     /**
00239      * A DependencyPrimaryLabel specifies that a dependency can be satisfied by
00240      * the primary ABI.
00241      *
00242      * \ingroup g_dep_spec
00243      * \since 0.26
00244      */
00245     typedef ConcreteDependencyLabel<DependencyPrimaryLabelTag, DependencyABIsLabel> DependencyPrimaryLabel;
00246 
00247     struct DependencyABILabelTag;
00248 
00249     /**
00250      * A DependencyABILabel specifies that a dependency can be satisfied by
00251      * a named ABI.
00252      *
00253      * \ingroup g_dep_spec
00254      * \since 0.26
00255      */
00256     typedef ConcreteDependencyLabel<DependencyABILabelTag, DependencyABIsLabel> DependencyABILabel;
00257 
00258     /**
00259      * A DependencyLabel can be written to a stream.
00260      *
00261      * \ingroup g_dep_spec
00262      * \since 0.26
00263      */
00264     std::ostream & operator<< (std::ostream &, const DependencyLabel &) PALUDIS_VISIBLE;
00265 
00266     struct ActiveDependencyLabels;
00267 }
00268 
00269 #endif

Generated on Mon Sep 21 10:36:08 2009 for paludis by  doxygen 1.5.4