/* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * This file is part of the Paludis package manager. Paludis is free software; * you can redistribute it and/or modify it under the terms of the GNU General * Public License version 2, as published by the Free Software Foundation. * * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef PALUDIS_GUARD_PALUDIS_SPEC_TREE_FWD_HH #define PALUDIS_GUARD_PALUDIS_SPEC_TREE_FWD_HH 1 #include #include namespace paludis { template struct SpecTreeInnerNodeType; template struct SpecTreeLeafNodeType; namespace spec_tree_internals { template class BasicNode; template class LeafNode; template struct InnerNode; template class BasicInnerNode; template struct BasicInnerNodeConstIteratorTag; template struct MakeVisitableTypeListEntry; template struct MakeVisitableTypeListEntry; template struct MakeVisitableTypeListEntry, Tail_> >; template struct MakeVisitableTypeListEntry, Tail_> >; template struct MakeVisitableTypeList; template struct TreeCannotContainNodeType; } template class SpecTree; typedef SpecTree, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType >::Type, AllDepSpec> GenericSpecTree; typedef SpecTree, SpecTreeInnerNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType >::Type, AllDepSpec> LicenseSpecTree; typedef SpecTree, SpecTreeLeafNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType >::Type, AllDepSpec> FetchableURISpecTree; typedef SpecTree, SpecTreeInnerNodeType, SpecTreeInnerNodeType >::Type, AllDepSpec> SimpleURISpecTree; typedef SpecTree, SpecTreeInnerNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType >::Type, AllDepSpec> RequiredUseSpecTree; typedef SpecTree, SpecTreeLeafNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType >::Type, AllDepSpec> PlainTextSpecTree; typedef SpecTree, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeLeafNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType, SpecTreeInnerNodeType >::Type, AllDepSpec> DependencySpecTree; typedef SpecTree, SpecTreeLeafNodeType, SpecTreeInnerNodeType >::Type, AllDepSpec> SetSpecTree; } #endif