plugin_factories

See Public API for a list of names and headers that are part of the public HPX API.

Defines

HPX_REGISTER_BINARY_FILTER_FACTORY(BinaryFilter, pluginname)

This macro is used create and to register a minimal component factory with Hpx.Plugin.

namespace hpx
namespace plugins
template<typename BinaryFilter>
struct binary_filter_factory : public hpx::plugins::binary_filter_factory_base
#include <binary_filter_factory.hpp>

The message_handler_factory provides a minimal implementation of a message handler’s factory. If no additional functionality is required this type can be used to implement the full set of minimally required functions to be exposed by a message handler’s factory instance.

Template Parameters
  • BinaryFilter: The message handler type this factory should be responsible for.

Public Functions

binary_filter_factory(util::section const *global, util::section const *local, bool isenabled)

Construct a new factory instance.

Note

The contents of both sections has to be cloned in order to save the configuration setting for later use.

Parameters
  • global: [in] The pointer to a hpx::util::section instance referencing the settings read from the [settings] section of the global configuration file (hpx.ini) This pointer may be nullptr if no such section has been found.

  • local: [in] The pointer to a hpx::util::section instance referencing the settings read from the section describing this component type: [hpx.components.<name>], where <name> is the instance name of the component as given in the configuration files.

~binary_filter_factory()
serialization::binary_filter *create(bool compress, serialization::binary_filter *next_filter = nullptr)

Create a new instance of a message handler

return Returns the newly created instance of the message handler supported by this factory

Protected Attributes

util::section global_settings_
util::section local_settings_
bool isenabled_

Defines

HPX_REGISTER_BINARY_FILTER_FACTORY_BASE(FactoryType, pluginname)

This macro is used to register the given component factory with Hpx.Plugin. This macro has to be used for each of the component factories.

namespace hpx
namespace plugins
struct binary_filter_factory_base : public hpx::plugins::plugin_factory_base
#include <binary_filter_factory_base.hpp>

The plugin_factory_base has to be used as a base class for all plugin factories.

Subclassed by hpx::plugins::binary_filter_factory< BinaryFilter >

Public Functions

~binary_filter_factory_base()
virtual serialization::binary_filter *create(bool compress, serialization::binary_filter *next_filter = nullptr) = 0

Create a new instance of a binary filter

return Returns the newly created instance of the binary filter supported by this factory

namespace hpx
namespace plugins

Functions

std::vector<parcelport_factory_base*> &get_parcelport_factories()
void add_parcelport_factory(parcelport_factory_base *factory)
struct parcelport_factory_base
#include <parcelport_factory_base.hpp>

The plugin_factory_base has to be used as a base class for all plugin factories.

Public Functions

virtual ~parcelport_factory_base()
virtual void get_plugin_info(std::vector<std::string> &fillini) = 0
virtual void init(int *argc, char ***argv, util::command_line_handling &cfg) = 0
virtual parcelset::parcelport *create(hpx::util::runtime_configuration const &cfg, threads::policies::callback_notifier const &notifier) = 0

Create a new instance of a parcelport

return Returns the newly created instance of the parcelport supported by this factory

Defines

HPX_REGISTER_PLUGIN_FACTORY_BASE(FactoryType, pluginname)

This macro is used to register the given component factory with Hpx.Plugin. This macro has to be used for each of the component factories.

HPX_REGISTER_PLUGIN_MODULE()

This macro is used to define the required Hpx.Plugin entry points. This macro has to be used in exactly one compilation unit of a component module.

HPX_REGISTER_PLUGIN_MODULE_DYNAMIC()
template<>
struct virtual_constructor<hpx::plugins::plugin_factory_base>

Public Types

template<>
using type = hpx::util::pack<hpx::util::section const*, hpx::util::section const*, bool>
namespace hpx
namespace plugins
struct plugin_factory_base
#include <plugin_factory_base.hpp>

The plugin_factory_base has to be used as a base class for all plugin factories.

Subclassed by hpx::plugins::binary_filter_factory_base

Public Functions

virtual ~plugin_factory_base()
namespace util
namespace plugin
template<>
struct virtual_constructor<hpx::plugins::plugin_factory_base>

Public Types

template<>
using type = hpx::util::pack<hpx::util::section const*, hpx::util::section const*, bool>

Defines

HPX_REGISTER_PLUGIN_REGISTRY(...)

This macro is used create and to register a minimal plugin registry with Hpx.Plugin.

HPX_REGISTER_PLUGIN_REGISTRY_(...)
HPX_REGISTER_PLUGIN_REGISTRY_2(PluginType, pluginname)
HPX_REGISTER_PLUGIN_REGISTRY_4(PluginType, pluginname, pluginsection, pluginsuffix)
HPX_REGISTER_PLUGIN_REGISTRY_5(PluginType, pluginname, pluginstring, pluginsection, pluginsuffix)
namespace hpx
namespace plugins
template<typename Plugin, char const *const Name, char const *const Section, char const *const Suffix>
struct plugin_registry : public plugin_registry_base
#include <plugin_registry.hpp>

The plugin_registry provides a minimal implementation of a plugin’s registry. If no additional functionality is required this type can be used to implement the full set of minimally required functions to be exposed by a plugin’s registry instance.

Template Parameters
  • Plugin: The plugin type this registry should be responsible for.

Public Functions

bool get_plugin_info(std::vector<std::string> &fillini)

Return the ini-information for all contained components.

Return

Returns true if the parameter fillini has been successfully initialized with the registry data of all implemented in this module.

Parameters
  • fillini: [in] The module is expected to fill this vector with the ini-information (one line per vector element) for all components implemented in this module.

Defines

HPX_DEF_UNIQUE_PLUGIN_NAME(PluginType, name)