MySQL 8.3.0
Source Code Documentation
Library_file Class Reference

Abstraction over the plugin library file, hides system specific dynamic library handling. More...

#include <library_file.h>

Classes

struct  Library_file_impl
 

Public Member Functions

 Library_file (const std::string &file_name, const std::string &plugin_name)
 Constructor. More...
 
uint32_t get_abi_version () const
 Returns ABI version of the plugin represented by the object. More...
 
template<class T >
T * get_plugin_struct (const std::string &symbol) const
 Returns version specific Plugin struct of the plugin. More...
 
 ~Library_file ()
 Destructor. More...
 

Private Member Functions

template<class T >
T * get_plugin_struct_internal (const std::string &symbol) const
 

Private Attributes

std::unique_ptr< Library_file_implimpl_
 
const std::string plugin_name_
 
const std::string file_name_
 

Detailed Description

Abstraction over the plugin library file, hides system specific dynamic library handling.

Constructor & Destructor Documentation

◆ Library_file()

Library_file::Library_file ( const std::string &  file_name,
const std::string &  plugin_name 
)
explicit

Constructor.

Parameters
file_namepath to the plugin file on the filesystem
plugin_namename of the plugin (has to match name of the exported Plugin struct)

◆ ~Library_file()

Library_file::~Library_file ( )

Destructor.

Member Function Documentation

◆ get_abi_version()

uint32_t Library_file::get_abi_version ( ) const

Returns ABI version of the plugin represented by the object.

◆ get_plugin_struct()

template<class T >
template Plugin_v1 * Library_file::get_plugin_struct< Plugin_v1 > ( const std::string &  symbol) const

Returns version specific Plugin struct of the plugin.

Specified by the caller through the template parameter.

Parameters
symbolname of the struct symbol

◆ get_plugin_struct_internal()

template<class T >
template Plugin_v1 * Library_file::get_plugin_struct_internal< Plugin_v1 > ( const std::string &  symbol) const
private

Member Data Documentation

◆ file_name_

const std::string Library_file::file_name_
private

◆ impl_

std::unique_ptr<Library_file_impl> Library_file::impl_
private

◆ plugin_name_

const std::string Library_file::plugin_name_
private

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