irccd  3.0.3
Public Types | Public Member Functions | List of all members
irccd::js::plugin_loader Class Reference

Implementation for searching Javascript plugins. More...

#include <plugin.hpp>

Inheritance diagram for irccd::js::plugin_loader:
irccd::daemon::plugin_loader

Public Types

using modules = std::vector< std::unique_ptr< api > >
 The list of Javascript API modules. More...
 

Public Member Functions

 plugin_loader (daemon::bot &bot, std::vector< std::string > directories={}, std::vector< std::string > extensions={".js"}) noexcept
 
 ~plugin_loader () noexcept
 
auto get_modules () const noexcept -> const modules &
 
auto get_modules () noexcept -> modules &
 
auto open (std::string_view id, std::string_view file) -> std::shared_ptr< daemon::plugin >
 
- Public Member Functions inherited from irccd::daemon::plugin_loader
 plugin_loader (std::vector< std::string > directories={}, std::vector< std::string > extensions={}) noexcept
 
virtual auto is_supported (std::string_view path) noexcept -> bool
 
virtual auto find (std::string_view id) -> std::shared_ptr< plugin >
 

Detailed Description

Implementation for searching Javascript plugins.

Member Typedef Documentation

◆ modules

using irccd::js::plugin_loader::modules = std::vector<std::unique_ptr<api> >

The list of Javascript API modules.

Constructor & Destructor Documentation

◆ plugin_loader()

irccd::js::plugin_loader::plugin_loader ( daemon::bot bot,
std::vector< std::string >  directories = {},
std::vector< std::string >  extensions = {".js"} 
)
noexcept

Constructor.

Parameters
botthe irccd instance
directoriesdirectories to search
extensionsextensions to search

◆ ~plugin_loader()

irccd::js::plugin_loader::~plugin_loader ( )
virtualnoexcept

Destructor defaulted.

Reimplemented from irccd::daemon::plugin_loader.

Member Function Documentation

◆ get_modules() [1/2]

auto irccd::js::plugin_loader::get_modules ( ) const -> const modules &
noexcept

Get the list of modules.

Returns
the modules

◆ get_modules() [2/2]

auto irccd::js::plugin_loader::get_modules ( ) -> modules &
noexcept

Overloaded function.

Returns
the modules

◆ open()

auto irccd::js::plugin_loader::open ( std::string_view  id,
std::string_view  file 
) -> std::shared_ptr< daemon::plugin >
virtual

Try to open the plugin specified by path.

The implementation must test if the plugin is suitable for opening, by testing extension for example.

Parameters
idthe plugin identifier
filethe file path
Returns
the plugin
Exceptions
plugin_erroron errors

Implements irccd::daemon::plugin_loader.


The documentation for this class was generated from the following file: