dep_spec-fwd.hh

Go to the documentation of this file.
00001 /* vim: set sw=4 sts=4 et foldmethod=syntax : */
00002 
00003 /*
00004  * Copyright (c) 2005, 2006, 2007, 2008, 2009 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_SPEC_FWD_HH
00021 #define PALUDIS_GUARD_PALUDIS_DEP_SPEC_FWD_HH 1
00022 
00023 #include <iosfwd>
00024 #include <string>
00025 #include <paludis/dep_label-fwd.hh>
00026 #include <paludis/dep_spec-fwd.hh>
00027 #include <paludis/formatter-fwd.hh>
00028 #include <paludis/util/attributes.hh>
00029 #include <paludis/util/sequence-fwd.hh>
00030 #include <paludis/util/options-fwd.hh>
00031 #include <tr1/memory>
00032 
00033 /** \file
00034  * Forward declarations for paludis/dep_spec.hh .
00035  *
00036  * \ingroup g_dep_spec
00037  */
00038 
00039 namespace paludis
00040 {
00041     class DepSpec;
00042     class PackageDepSpec;
00043     class PlainTextDepSpec;
00044     class LicenseDepSpec;
00045     class FetchableURIDepSpec;
00046     class SimpleURIDepSpec;
00047     class AllDepSpec;
00048     class AnyDepSpec;
00049     class ConditionalDepSpec;
00050     class BlockDepSpec;
00051     class StringDepSpec;
00052     class NamedSetDepSpec;
00053     class PlainTextLabelDepSpec;
00054     template <typename T_> class LabelsDepSpec;
00055 
00056 #include <paludis/dep_spec-se.hh>
00057 
00058     /**
00059      * Options for PartiallyMadePackageDepSpec.
00060      *
00061      * \ingroup g_dep_spec
00062      * \since 0.38
00063      */
00064     typedef Options<PartiallyMadePackageDepSpecOption> PartiallyMadePackageDepSpecOptions;
00065 
00066     /**
00067      * A URILabelsDepSpec represents labels in a FetchableURISpecTree.
00068      *
00069      * \ingroup g_dep_spec
00070      * \since 0.26
00071      */
00072     typedef LabelsDepSpec<URILabel> URILabelsDepSpec;
00073 
00074     /**
00075      * A DependencyLabelsDepSpec represents labels in a DependencySpecTree.
00076      *
00077      * \ingroup g_dep_spec
00078      * \since 0.26
00079      */
00080     typedef LabelsDepSpec<DependencyLabel> DependencyLabelsDepSpec;
00081 
00082     class PackageDepSpecData;
00083     class PartiallyMadePackageDepSpec;
00084     class ConditionalDepSpecData;
00085 
00086     class AdditionalPackageDepSpecRequirement;
00087 
00088     struct InstallableToRepository;
00089     struct InstallableToPath;
00090 
00091     /**
00092      * An AdditionalPackageDepSpecRequirement can be written to an ostream.
00093      *
00094      * \ingroup g_dep_spec
00095      */
00096     std::ostream & operator<< (std::ostream &, const AdditionalPackageDepSpecRequirement &) PALUDIS_VISIBLE;
00097 
00098     /**
00099      * A collection of additional requirements for a PackageDepSpec.
00100      *
00101      * \since 0.26
00102      * \ingroup g_dep_spec
00103      */
00104     typedef Sequence<std::tr1::shared_ptr<const AdditionalPackageDepSpecRequirement> > AdditionalPackageDepSpecRequirements;
00105 
00106     /**
00107      * Create a PackageDepSpec from various rules.
00108      *
00109      * Note the return type is a PartiallyMadePackageDepSpec, which is implicitly convertible to
00110      * a PackageDepSpec.
00111      *
00112      * \ingroup g_dep_spec
00113      * \since 0.26
00114      */
00115     PartiallyMadePackageDepSpec make_package_dep_spec(const PartiallyMadePackageDepSpecOptions &) PALUDIS_VISIBLE;
00116 
00117     /**
00118      * A PlainTextDepSpec can be written to an ostream.
00119      *
00120      * \ingroup g_dep_spec
00121      */
00122     std::ostream & operator<< (std::ostream &, const PlainTextDepSpec &) PALUDIS_VISIBLE;
00123 
00124     class PackageDepSpecError;
00125 
00126     /**
00127      * A PackageDepSpec can be written to an ostream.
00128      *
00129      * \ingroup g_dep_spec
00130      */
00131     std::ostream & operator<< (std::ostream &, const PackageDepSpec &) PALUDIS_VISIBLE;
00132 
00133     /**
00134      * A URILabelsDepSpec can be written to an ostream.
00135      *
00136      * \ingroup g_dep_spec
00137      * \since 0.26
00138      */
00139     std::ostream & operator<< (std::ostream &, const URILabelsDepSpec &) PALUDIS_VISIBLE;
00140 
00141     /**
00142      * A DependencyLabelsDepSpec can be written to an ostream.
00143      *
00144      * \ingroup g_dep_spec
00145      * \since 0.26
00146      */
00147     std::ostream & operator<< (std::ostream &, const DependencyLabelsDepSpec &) PALUDIS_VISIBLE;
00148 
00149     /**
00150      * A BlockDepSpec can be written to an ostream.
00151      *
00152      * \ingroup g_dep_spec
00153      * \since 0.26
00154      */
00155     std::ostream & operator<< (std::ostream &, const BlockDepSpec &) PALUDIS_VISIBLE;
00156 
00157     /**
00158      * A SimpleURIDepSpec can be written to an ostream.
00159      *
00160      * \ingroup g_dep_spec
00161      * \since 0.26
00162      */
00163     std::ostream & operator<< (std::ostream &, const SimpleURIDepSpec &) PALUDIS_VISIBLE;
00164 
00165     /**
00166      * A FetchableURIDepSpec can be written to an ostream.
00167      *
00168      * \ingroup g_dep_spec
00169      * \since 0.26
00170      */
00171     std::ostream & operator<< (std::ostream &, const FetchableURIDepSpec &) PALUDIS_VISIBLE;
00172 
00173     /**
00174      * A LicenseDepSpec can be written to an ostream.
00175      *
00176      * \ingroup g_dep_spec
00177      * \since 0.26
00178      */
00179     std::ostream & operator<< (std::ostream &, const LicenseDepSpec &) PALUDIS_VISIBLE;
00180 
00181     /**
00182      * A ConditionalDepSpec can be written to an ostream.
00183      *
00184      * \ingroup g_dep_spec
00185      * \since 0.26
00186      */
00187     std::ostream & operator<< (std::ostream &, const ConditionalDepSpec &) PALUDIS_VISIBLE;
00188 
00189     /**
00190      * A NamedSetDepSpec can be written to an ostream.
00191      *
00192      * \ingroup g_dep_spec
00193      * \since 0.26
00194      */
00195     std::ostream & operator<< (std::ostream &, const NamedSetDepSpec &) PALUDIS_VISIBLE;
00196 
00197     /**
00198      * A PlainTextLabelDepSpec can be written to an ostream.
00199      *
00200      * \ingroup g_dep_spec
00201      * \since 0.32
00202      */
00203     std::ostream & operator<< (std::ostream &, const PlainTextLabelDepSpec &) PALUDIS_VISIBLE;
00204 }
00205 
00206 #endif

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