dlvhex
2.5.0
|
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: