name-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 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_NAME_FWD_HH
00021 #define PALUDIS_GUARD_PALUDIS_NAME_FWD_HH 1
00022 
00023 #include <paludis/util/validated-fwd.hh>
00024 #include <paludis/util/set-fwd.hh>
00025 #include <paludis/util/sequence-fwd.hh>
00026 #include <paludis/util/attributes.hh>
00027 #include <string>
00028 
00029 /** \file
00030  * Forward declarations for paludis/name.hh .
00031  *
00032  * \ingroup g_names
00033  */
00034 
00035 namespace paludis
00036 {
00037     class PackageNamePartError;
00038     class PackageNamePartValidator;
00039 
00040     /**
00041      * A PackageNamePart holds a std::string that is a valid name for the
00042      * package part of a QualifiedPackageName.
00043      *
00044      * \ingroup g_names
00045      */
00046     typedef Validated<std::string, PackageNamePartValidator> PackageNamePart;
00047 
00048     /**
00049      * Holds a set of PackageNamePart instances.
00050      *
00051      * \ingroup g_names
00052      */
00053     typedef Set<PackageNamePart> PackageNamePartSet;
00054 
00055     class CategoryNamePartError;
00056     class CategoryNamePartValidator;
00057 
00058     /**
00059      * A CategoryNamePart holds a std::string that is a valid name for the
00060      * category part of a QualifiedPackageName.
00061      *
00062      * \ingroup g_names
00063      */
00064     typedef Validated<std::string, CategoryNamePartValidator> CategoryNamePart;
00065 
00066     /**
00067      * Holds a set of CategoryNamePart instances.
00068      *
00069      * \ingroup g_names
00070      */
00071     typedef Set<CategoryNamePart> CategoryNamePartSet;
00072 
00073     class QualifiedPackageName;
00074 
00075     /**
00076      * Output a QualifiedPackageName to a stream.
00077      *
00078      * \ingroup g_names
00079      */
00080     std::ostream & operator<< (std::ostream &, const QualifiedPackageName &) PALUDIS_VISIBLE;
00081 
00082     /**
00083      * Holds a collection of QualifiedPackageName instances.
00084      *
00085      * \ingroup g_names
00086      */
00087     typedef Set<QualifiedPackageName> QualifiedPackageNameSet;
00088 
00089     class QualifiedPackageNameError;
00090 
00091     /**
00092      * A CategoryNamePart plus a PackageNamePart is a QualifiedPackageName.
00093      *
00094      * \ingroup g_names
00095      */
00096     inline const QualifiedPackageName
00097     operator+ (const CategoryNamePart & c, const PackageNamePart & p) PALUDIS_ATTRIBUTE((warn_unused_result));
00098 
00099     class SlotNameError;
00100     class SlotNameValidator;
00101 
00102     /**
00103      * A SlotName holds a std::string that is a valid name for a SLOT.
00104      *
00105      * \ingroup g_names
00106      */
00107     typedef Validated<std::string, SlotNameValidator> SlotName;
00108 
00109     class RepositoryNameError;
00110     class RepositoryNameValidator;
00111 
00112     /**
00113      * A RepositoryName holds a std::string that is a valid name for a
00114      * Repository.
00115      *
00116      * \ingroup g_names
00117      */
00118     typedef Validated<std::string, RepositoryNameValidator, false> RepositoryName;
00119 
00120     /**
00121      * Holds a collection of RepositoryName instances.
00122      *
00123      * \ingroup g_names
00124      */
00125     typedef Sequence<RepositoryName> RepositoryNameSequence;
00126 
00127     class RepositoryNameComparator;
00128 
00129     /**
00130      * Holds an arbitrarily ordered collection of RepositoryName instances.
00131      *
00132      * \ingroup g_names
00133      */
00134     typedef Set<RepositoryName, RepositoryNameComparator> RepositoryNameSet;
00135 
00136     class KeywordNameValidator;
00137     class KeywordNameError;
00138     class KeywordNameComparator;
00139 
00140     /**
00141      * A KeywordName holds a std::string that is a valid name for a KEYWORD.
00142      *
00143      * \ingroup g_names
00144      */
00145     typedef Validated<std::string, KeywordNameValidator, true, KeywordNameComparator> KeywordName;
00146 
00147     /**
00148      * Holds a collection of KeywordName instances.
00149      *
00150      * \ingroup g_names
00151      */
00152     typedef Set<KeywordName> KeywordNameSet;
00153 
00154     class SetNameValidator;
00155     class SetNameError;
00156 
00157     /**
00158      * A SetName holds a std::string that is a valid name for a set.
00159      *
00160      * \ingroup g_names
00161      */
00162     typedef Validated<std::string, SetNameValidator> SetName;
00163 
00164     /**
00165      * A collection of set names.
00166      *
00167      * \ingroup g_names
00168      */
00169     typedef Set<SetName> SetNameSet;
00170 }
00171 
00172 #endif

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