plugin

The contents of this module can be included with the header hpx/modules/plugin.hpp. These headers may be used by user-code but are not guaranteed stable (neither header location nor contents). You are using these at your own risk. If you wish to use non-public functionality from a module we strongly suggest only including the module header hpx/modules/plugin.hpp, not the particular header in which the functionality you would like to use is defined. See Public API for a list of names that are part of the public HPX API.

Header hpx/modules/plugin.hpp

Header hpx/plugin/abstract_factory.hpp

Header hpx/plugin/concrete_factory.hpp

Header hpx/plugin/config.hpp

Defines

HPX_PLUGIN_EXPORT_API
HPX_PLUGIN_API
HPX_PLUGIN_ARGUMENT_LIMIT
HPX_PLUGIN_SYMBOLS_PREFIX_DYNAMIC
HPX_PLUGIN_SYMBOLS_PREFIX
HPX_PLUGIN_SYMBOLS_PREFIX_DYNAMIC_STR
HPX_PLUGIN_SYMBOLS_PREFIX_STR
namespace hpx
namespace util
namespace plugin

Typedefs

using shared_ptr = boost::shared_ptr<T>

Header hpx/plugin/dll.hpp

Defines

HPX_HAS_DLOPEN

Header hpx/plugin/export_plugin.hpp

Defines

HPX_PLUGIN_NAME_2(name1, name2)
HPX_PLUGIN_NAME_3(name, base, cname)
HPX_PLUGIN_LIST_NAME_(prefix, name, base)
HPX_PLUGIN_EXPORTER_NAME_(prefix, name, base, cname)
HPX_PLUGIN_EXPORTER_INSTANCE_NAME_(prefix, name, base, cname)
HPX_PLUGIN_FORCE_LOAD_NAME_(prefix, name, base)
HPX_PLUGIN_LIST_NAME(name, base)
HPX_PLUGIN_EXPORTER_NAME(name, base, cname)
HPX_PLUGIN_EXPORTER_INSTANCE_NAME(name, base, cname)
HPX_PLUGIN_FORCE_LOAD_NAME(name, base)
HPX_PLUGIN_LIST_NAME_DYNAMIC(name, base)
HPX_PLUGIN_EXPORTER_NAME_DYNAMIC(name, base, cname)
HPX_PLUGIN_EXPORTER_INSTANCE_NAME_DYNAMIC(name, base, cname)
HPX_PLUGIN_FORCE_LOAD_NAME_DYNAMIC(name, base)
HPX_PLUGIN_EXPORT_(prefix, name, BaseType, ActualType, actualname, classname)
HPX_PLUGIN_EXPORT(name, BaseType, ActualType, actualname, classname)
HPX_PLUGIN_EXPORT_DYNAMIC(name, BaseType, ActualType, actualname, classname)
HPX_PLUGIN_EXPORT_LIST_(prefix, name, classname)
HPX_PLUGIN_EXPORT_LIST(name, classname)
HPX_PLUGIN_EXPORT_LIST_DYNAMIC(name, classname)

Header hpx/plugin/plugin_factory.hpp

namespace hpx
namespace util
namespace plugin
template<class BasePlugin>
struct plugin_factory : public hpx::util::plugin::detail::plugin_factory_item<BasePlugin, detail::plugin_factory_item_base, virtual_constructor<BasePlugin>::type>
#include <plugin_factory.hpp>

Public Functions

plugin_factory(dll &d, std::string const &basename)

Private Types

template<>
using base_type = detail::plugin_factory_item<BasePlugin, detail::plugin_factory_item_base, typename virtual_constructor<BasePlugin>::type>
template<class BasePlugin>
struct static_plugin_factory : public hpx::util::plugin::detail::static_plugin_factory_item<BasePlugin, detail::static_plugin_factory_item_base, virtual_constructor<BasePlugin>::type>
#include <plugin_factory.hpp>

Public Functions

static_plugin_factory(get_plugins_list_type const &f)

Private Types

template<>
using base_type = detail::static_plugin_factory_item<BasePlugin, detail::static_plugin_factory_item_base, typename virtual_constructor<BasePlugin>::type>

Header hpx/plugin/plugin_wrapper.hpp

namespace hpx
namespace util
namespace plugin
template<typename Wrapped, typename ...Parameters>
struct plugin_wrapper : public hpx::util::plugin::detail::dll_handle_holder, public Wrapped
#include <plugin_wrapper.hpp>

Public Functions

plugin_wrapper(dll_handle dll, Parameters... parameters)

Header hpx/plugin/traits/plugin_config_data.hpp

namespace hpx
namespace traits
template<typename Plugin, typename Enable = void>
struct plugin_config_data
#include <plugin_config_data.hpp>

Public Static Functions

static char const *call()

Header hpx/plugin/virtual_constructor.hpp

namespace hpx
namespace util
namespace plugin

Typedefs

using exported_plugins_type = std::map<std::string, hpx::util::any_nonser>
typedef exported_plugins_type*(HPX_PLUGIN_API* hpx::util::plugin::get_plugins_list_type) ()
typedef exported_plugins_type* HPX_PLUGIN_API hpx::util::plugin::get_plugins_list_np()
using dll_handle = shared_ptr<get_plugins_list_np>
template<typename BasePlugin>
struct virtual_constructor
#include <virtual_constructor.hpp>

Public Types

template<>
using type = hpx::util::pack<>