21 #ifndef LUNCHBOX_PLUGINREGISTRY_H
22 #define LUNCHBOX_PLUGINREGISTRY_H
26 #include <lunchbox/visitorResult.h>
27 #include <boost/noncopyable.hpp>
32 namespace detail {
class PluginRegistry; }
58 LUNCHBOX_API
void addDirectory(
const std::string& path );
78 LUNCHBOX_API
void init();
81 LUNCHBOX_API
void exit();
97 LUNCHBOX_API
const Plugins& getPlugins()
const;
100 LUNCHBOX_API
Plugin* findPlugin(
const uint32_t name );
103 LUNCHBOX_API
const Plugin* findPlugin(
const uint32_t name )
const;
106 LUNCHBOX_API
bool addPlugin(
const std::string& filename );
109 detail::PluginRegistry*
const impl_;
112 #endif // LUNCHBOX_PLUGINREGISTRY_H
A registry for loaded plugins.
Defines export visibility macros for Lunchbox.
Basic type definitions not provided by the operating system.
std::vector< std::string > Strings
A vector of std::strings.
LUNCHBOX_API void addDirectory(const std::string &path)
Add a new directory to search for compressor DSOs during init().
LUNCHBOX_API PluginRegistry()
Construct a new plugin registry.
Visitor for all plugins and compressors of a Plugin or PluginRegistry.
LUNCHBOX_API ~PluginRegistry()
Destruct this plugin registry.
LUNCHBOX_API VisitorResult accept(PluginVisitor &visitor)
Visit all plugins and compressors.
VisitorResult
The result code from any visit operation.
Holder for all functions and information of one compression plugin DSO.
LUNCHBOX_API const Strings & getDirectories() const
LUNCHBOX_API bool addLunchboxPlugins()
Add the lunchbox library plugins to this registry.
LUNCHBOX_API void removeDirectory(const std::string &path)
Remove a plugin directory.