dlvhex
2.5.0
|
Interface that can/should be implemented by a plugin. More...
#include "dlvhex2/PlatformDefinitions.h"
#include "dlvhex2/fwd.h"
#include "dlvhex2/ID.h"
#include "dlvhex2/Atoms.h"
#include "dlvhex2/Error.h"
#include "dlvhex2/CDNLSolver.h"
#include "dlvhex2/ComponentGraph.h"
#include "dlvhex2/ExtSourceProperties.h"
#include "dlvhex2/ExternalAtomEvaluationHeuristicsInterface.h"
#include <boost/shared_ptr.hpp>
#include <boost/unordered_map.hpp>
#include <boost/thread/mutex.hpp>
#include <map>
#include <string>
#include <iosfwd>
#include <algorithm>
Go to the source code of this file.
Data Structures | |
class | PluginInterface |
Factory where plugins interact with the dlvhex core. More... | |
class | PluginData |
Base class for plugin-specific storage in ProgramCtx. More... | |
class | PluginEnvironment |
Base class for plugin-specific storage in ProgramCtx. More... | |
class | PluginAtom |
Interface class for external Atoms. More... | |
struct | PluginAtom::Query |
Query class which provides the input of an external atom call. More... | |
struct | PluginAtom::Answer |
Output of an external atom call. More... | |
class | PluginConverter |
Converter class (input stream rewriter). More... | |
class | ModelCallback |
Callback functor for processing complete models of the HEX program. More... | |
class | FinalCallback |
Callback functor after model enumeration finished or aborted. More... | |
class | PluginRewriter |
Rewriter class. More... | |
class | PluginOptimizer |
Optimizer class. More... | |
struct | PluginPtrDeleter< AllocatedT > |
Special library deleter to be used with boost smart pointers. More... | |
struct | PluginPtrNOPDeleter< AllocatedT > |
Special library deleter to be used with boost smart pointers. More... | |
Defines | |
#define | PLUGINABIVERSIONFUNCTION getDlvhex2ABIVersion |
Definitions for C ABI interface for dlvhex plugins. | |
#define | PLUGINABIVERSIONFUNCTIONSTRING "getDlvhex2ABIVersion" |
#define | PLUGINVERSIONFUNCTION getDlvhexPluginVersion |
#define | PLUGINVERSIONFUNCTIONSTRING "getDlvhexPluginVersion" |
#define | PLUGINIMPORTFUNCTION importPlugin |
#define | PLUGINIMPORTFUNCTIONSTRING "importPlugin" |
#define | IMPLEMENT_PLUGINABIVERSIONFUNCTION |
Typedefs | |
typedef boost::shared_ptr < PluginInterface > | PluginInterfacePtr |
typedef boost::shared_ptr < PluginData > | PluginDataPtr |
typedef boost::shared_ptr < PluginEnvironment > | PluginEnvironmentPtr |
typedef boost::shared_ptr < PluginAtom > | PluginAtomPtr |
typedef boost::weak_ptr < PluginAtom > | PluginAtomWeakPtr |
typedef boost::shared_ptr < PluginConverter > | PluginConverterPtr |
typedef boost::shared_ptr < ModelCallback > | ModelCallbackPtr |
typedef boost::shared_ptr < FinalCallback > | FinalCallbackPtr |
typedef boost::shared_ptr < PluginRewriter > | PluginRewriterPtr |
Functions | |
std::size_t | hash_value (const PluginAtom::Query &q) |
Interface that can/should be implemented by a plugin.
Definition in file PluginInterface.h.
extern "C" DLVHEX_PLUGINEXPORT int PLUGINABIVERSIONFUNCTION() \ { \ return DLVHEX_ABI_VERSION_MAJOR*10000+\ DLVHEX_ABI_VERSION_MINOR*100+\ DLVHEX_ABI_VERSION_MICRO; \ }
Definition at line 266 of file PluginInterface.h.
#define PLUGINABIVERSIONFUNCTION getDlvhex2ABIVersion |
Definitions for C ABI interface for dlvhex plugins.
We store the version like boost as an integer. We use the apache APR approach to versioning.
The following code must be used by a plugin to publish their ABI compatibility:
DLVHEX_DEFINE_VERSION([DLVHEX_ABI],[X.Y.Z])
See the documentation of PluginInterface for how to publish your plugin interface.
Definition at line 259 of file PluginInterface.h.
#define PLUGINABIVERSIONFUNCTIONSTRING "getDlvhex2ABIVersion" |
Definition at line 260 of file PluginInterface.h.
#define PLUGINIMPORTFUNCTION importPlugin |
Definition at line 264 of file PluginInterface.h.
#define PLUGINIMPORTFUNCTIONSTRING "importPlugin" |
Definition at line 265 of file PluginInterface.h.
#define PLUGINVERSIONFUNCTION getDlvhexPluginVersion |
Definition at line 262 of file PluginInterface.h.
#define PLUGINVERSIONFUNCTIONSTRING "getDlvhexPluginVersion" |
Definition at line 263 of file PluginInterface.h.
typedef boost::shared_ptr<FinalCallback> FinalCallbackPtr |
Definition at line 1429 of file PluginInterface.h.
typedef boost::shared_ptr<ModelCallback> ModelCallbackPtr |
Definition at line 1409 of file PluginInterface.h.
typedef boost::shared_ptr<PluginAtom> PluginAtomPtr |
Definition at line 1349 of file PluginInterface.h.
typedef boost::weak_ptr<PluginAtom> PluginAtomWeakPtr |
Definition at line 1350 of file PluginInterface.h.
typedef boost::shared_ptr<PluginConverter> PluginConverterPtr |
Definition at line 1384 of file PluginInterface.h.
typedef boost::shared_ptr<PluginData> PluginDataPtr |
Definition at line 515 of file PluginInterface.h.
typedef boost::shared_ptr<PluginEnvironment> PluginEnvironmentPtr |
Definition at line 532 of file PluginInterface.h.
typedef boost::shared_ptr<PluginInterface> PluginInterfacePtr |
Definition at line 496 of file PluginInterface.h.
typedef boost::shared_ptr<PluginRewriter> PluginRewriterPtr |
Definition at line 1468 of file PluginInterface.h.
std::size_t hash_value | ( | const PluginAtom::Query & | q | ) |
Definition at line 105 of file PluginInterface.cpp.
References bm::bvector< Alloc >::end(), bm::bvector< Alloc >::first(), PluginAtom::Query::input, PluginAtom::Query::interpretation, and PluginAtom::Query::pattern.