dlvhex  2.5.0
include/dlvhex2/fwd.h
Go to the documentation of this file.
00001 /* dlvhex -- Answer-Set Programming with external interfaces.
00002  * Copyright (C) 2005-2007 Roman Schindlauer
00003  * Copyright (C) 2006-2015 Thomas Krennwallner
00004  * Copyright (C) 2009-2016 Peter Schüller
00005  * Copyright (C) 2011-2016 Christoph Redl
00006  * Copyright (C) 2015-2016 Tobias Kaminski
00007  * Copyright (C) 2015-2016 Antonius Weinzierl
00008  *
00009  * This file is part of dlvhex.
00010  *
00011  * dlvhex is free software; you can redistribute it and/or modify it
00012  * under the terms of the GNU Lesser General Public License as
00013  * published by the Free Software Foundation; either version 2.1 of
00014  * the License, or (at your option) any later version.
00015  *
00016  * dlvhex is distributed in the hope that it will be useful, but
00017  * WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019  * Lesser General Public License for more details.
00020  *
00021  * You should have received a copy of the GNU Lesser General Public
00022  * License along with dlvhex; if not, write to the Free Software
00023  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
00024  * 02110-1301 USA.
00025  */
00026 
00036 #ifndef FWD_HPP_INCLUDED_14012011
00037 #define FWD_HPP_INCLUDED_14012011
00038 
00039 #include "dlvhex2/PlatformDefinitions.h"
00040 
00041 #include <boost/shared_ptr.hpp>
00042 
00043 DLVHEX_NAMESPACE_BEGIN
00044 
00045 // sorted alphabetically, to easily verify/extend the list
00046 
00047 struct AggregateAtom;
00048 
00049 class AnswerSet;
00050 typedef boost::shared_ptr<AnswerSet> AnswerSetPtr;
00051 
00052 class AuxPrinter;
00053 typedef boost::shared_ptr<AuxPrinter> AuxPrinterPtr;
00054 
00055 class BaseModelGeneratorFactory;
00056 typedef boost::shared_ptr<BaseModelGeneratorFactory> BaseModelGeneratorFactoryPtr;
00057 
00058 class ComponentGraph;
00059 typedef boost::shared_ptr<ComponentGraph> ComponentGraphPtr;
00060 
00061 class DependencyGraph;
00062 typedef boost::shared_ptr<DependencyGraph> DependencyGraphPtr;
00063 
00064 class LiberalSafetyChecker;
00065 class LiberalSafetyPlugin;
00066 class LiberalSafetyPluginFactory;
00067 typedef boost::shared_ptr<LiberalSafetyChecker> LiberalSafetyCheckerPtr;
00068 typedef boost::shared_ptr<LiberalSafetyPlugin> LiberalSafetyPluginPtr;
00069 typedef boost::shared_ptr<LiberalSafetyPluginFactory> LiberalSafetyPluginFactoryPtr;
00070 
00071 struct ExternalAtom;
00072 
00073 class EAInputTupleCache;
00074 typedef boost::shared_ptr<EAInputTupleCache> EAInputTupleCachePtr;
00075 
00076 // FinalEvalGraph is a typedef and must not be forward-declared!
00077 
00078 class HexParser;
00079 typedef boost::shared_ptr<HexParser> HexParserPtr;
00080 class HexParserModule;
00081 typedef boost::shared_ptr<HexParserModule> HexParserModulePtr;
00082 
00083 class InputProvider;
00084 typedef boost::shared_ptr<InputProvider> InputProviderPtr;
00085 
00086 class Interpretation;
00087 typedef boost::shared_ptr<const Interpretation> InterpretationConstPtr;
00088 typedef boost::shared_ptr<Interpretation> InterpretationPtr;
00089 
00090 struct OrdinaryASPProgram;
00091 
00092 class OrdinaryASPSolver;
00093 typedef boost::shared_ptr<OrdinaryASPSolver> OrdinaryASPSolverPtr;
00094 
00095 struct OrdinaryAtom;
00096 
00097 class PluginData;
00098 typedef boost::shared_ptr<PluginData> PluginDataPtr;
00099 
00100 class PluginAtom;
00101 // beware: most of the time this Ptr will have to be created with a "deleter" in the library
00102 typedef boost::shared_ptr<PluginAtom> PluginAtomPtr;
00103 // beware: as PluginAtomPtr objects are returned from shared libraries, we cannot use weak pointers
00104 
00105 class PluginContainer;
00106 typedef boost::shared_ptr<PluginContainer> PluginContainerPtr;
00107 
00108 class PluginConverter;
00109 // beware: most of the time this Ptr will have to be created with a "deleter" in the library
00110 typedef boost::shared_ptr<PluginConverter> PluginConverterPtr;
00111 
00112 class PluginInterface;
00113 // beware: most of the time this Ptr will have to be created with a "deleter" in the library
00114 typedef boost::shared_ptr<PluginInterface> PluginInterfacePtr;
00115 
00116 class PluginOptimizer;
00117 // beware: most of the time this Ptr will have to be created with a "deleter" in the library
00118 typedef boost::shared_ptr<PluginOptimizer> PluginOptimizerPtr;
00119 
00120 class PluginRewriter;
00121 // beware: most of the time this Ptr will have to be created with a "deleter" in the library
00122 typedef boost::shared_ptr<PluginRewriter> PluginRewriterPtr;
00123 
00124 class PredicateMask;
00125 typedef boost::shared_ptr<PredicateMask> PredicateMaskPtr;
00126 
00127 class ProgramCtx;
00128 
00129 struct Registry;
00130 typedef boost::shared_ptr<Registry> RegistryPtr;
00131 
00132 struct Rule;
00133 
00134 class State;
00135 typedef boost::shared_ptr<State> StatePtr;
00136 
00137 DLVHEX_NAMESPACE_END
00138 #endif                           // FWD_HPP_INCLUDED_14012011
00139 
00140 // vim:expandtab:ts=4:sw=4:
00141 // mode: C++
00142 // End: