PLCnext API Documentation 25.0.2.69
Public Types | Public Member Functions | List of all members
Arp::Base::Acf::Commons::LibraryBase Class Reference

This class serves as base class of all Library classes in Arp component projects. More...

#include <LibraryBase.hpp>

Inheritance diagram for Arp::Base::Acf::Commons::LibraryBase:
Inheritance graph

Public Types

using FactoryMethod = IComponentFactory::FactoryMethod
 The prototype of the component factory method.
 
using FactoryMethodCompat = IComponentFactory::FactoryMethodCompat
 The deprecated prototype of the component factory method.
 
- Public Types inherited from Arp::Base::Acf::Commons::ILibrary
using MainEntry = ILibrary &(*)(void)
 This is the prototype of the main entry point of any Arp library which shall be loaded dynamically by the Acf. More...
 

Public Member Functions

 LibraryBase (const ArpVersion &libraryVersion=ArpVersion{})
 Constructs a LibraryBase instance. More...
 
 LibraryBase (const LibraryBase &arg)=delete
 
 LibraryBase (LibraryBase &&arg) noexcept
 The default move constructor. More...
 
LibraryBase & operator= (const LibraryBase &arg)=delete
 
LibraryBase & operator= (LibraryBase &&arg) noexcept
 The default move-assignment operator. More...
 
 ~LibraryBase (void) override
 The default destructor.
 
void Initialize (void) override
 Initializes this library. More...
 
void Dispose (void) override
 Disposes this library. More...
 
IComponentFactory & GetComponentFactory (void) override
 Gets the component factory of this library to create instances of its provided components. More...
 
const ArpVersion & GetBuildVersion (void) const override
 Gets the version of the firmware or SDK which was used to build the shared library. More...
 
const ArpVersion & GetLibraryVersion (void) const override
 Gets the version of the library provided by its author. More...
 
String GetLibraryInfoItem (LibraryInfoKind kind) const override
 Gets additional information about the library More...
 
template<class T >
void AddComponentType (void)
 Registers a type of a component of this library. More...
 
template<class T >
void RegisterComponentType (void)
 Registers a type of a component of this library. More...
 
template<class T >
void RegisterComponentType (const String &typeName)
 Registers a type of a component of this library. More...
 
Impl & GetImpl (void)
 For internal use only. More...
 
const Impl & GetImpl (void) const
 
- Public Member Functions inherited from Arp::Base::Acf::Commons::ILibrary
 ILibrary (void)=default
 The default constructor.
 
 ILibrary (ILibrary &&arg) noexcept=default
 The move constructor. More...
 
 ILibrary (const ILibrary &arg)=delete
 The copy constructor is deleted. More...
 
ILibrary & operator= (ILibrary &&arg) noexcept=default
 The move assignment operator. More...
 
ILibrary & operator= (const ILibrary &arg)=delete
 The copy assignment operator is deleted. More...
 
virtual ~ILibrary (void)=default
 The virtual default destructor.
 
virtual void Initialize (void)=0
 Initializes this library. More...
 
virtual void Dispose (void)=0
 Disposes this library. More...
 
virtual IComponentFactory & GetComponentFactory (void)=0
 Gets the component factory of this library to create instances of its provided components. More...
 
virtual const ArpVersion & GetBuildVersion (void) const =0
 Gets the version of the firmware or SDK which was used to build the shared library. More...
 
virtual const ArpVersion & GetLibraryVersion (void) const =0
 Gets the version of the library provided by its author. More...
 
virtual String GetLibraryInfoItem (LibraryInfoKind kind) const =0
 Gets additional information about the library More...
 

Detailed Description

This class serves as base class of all Library classes in Arp component projects.

Constructor & Destructor Documentation

◆ LibraryBase() [1/2]

Arp::Base::Acf::Commons::LibraryBase::LibraryBase ( const ArpVersion &  libraryVersion = ArpVersion{})
explicit

Constructs a LibraryBase instance.

Parameters
libraryVersionThe version of this library.

◆ LibraryBase() [2/2]

Arp::Base::Acf::Commons::LibraryBase::LibraryBase ( LibraryBase &&  arg)
defaultnoexcept

The default move constructor.

Parameters
argThe argument to move.

Member Function Documentation

◆ AddComponentType()

template<class T >
void Arp::Base::Acf::Commons::LibraryBase::AddComponentType ( void  )
inline

Registers a type of a component of this library.

Template Parameters
TThe type of the component to register.

◆ Dispose()

void Arp::Base::Acf::Commons::LibraryBase::Dispose ( void  )
overridevirtual

Disposes this library.

Implements Arp::Base::Acf::Commons::ILibrary.

◆ GetBuildVersion()

const ArpVersion & Arp::Base::Acf::Commons::LibraryBase::GetBuildVersion ( void  ) const
overridevirtual

Gets the version of the firmware or SDK which was used to build the shared library.

Implements Arp::Base::Acf::Commons::ILibrary.

◆ GetComponentFactory()

IComponentFactory & Arp::System::Acf::LibraryBase::GetComponentFactory ( void  )
overridevirtual

Gets the component factory of this library to create instances of its provided components.

Implements Arp::Base::Acf::Commons::ILibrary.

◆ GetImpl()

const LibraryBase::Impl & Arp::Base::Acf::Commons::LibraryBase::GetImpl ( void  )

For internal use only.

Returns
The implementation instance of this class.

◆ GetLibraryInfoItem()

String Arp::Base::Acf::Commons::LibraryBase::GetLibraryInfoItem ( LibraryInfoKind  kind) const
overridevirtual

Gets additional information about the library

Implements Arp::Base::Acf::Commons::ILibrary.

◆ GetLibraryVersion()

const ArpVersion & Arp::Base::Acf::Commons::LibraryBase::GetLibraryVersion ( void  ) const
overridevirtual

Gets the version of the library provided by its author.

Implements Arp::Base::Acf::Commons::ILibrary.

◆ Initialize()

void Arp::Base::Acf::Commons::LibraryBase::Initialize ( void  )
overridevirtual

Initializes this library.

Implements Arp::Base::Acf::Commons::ILibrary.

◆ operator=()

LibraryBase & Arp::Base::Acf::Commons::LibraryBase::operator= ( LibraryBase &&  arg)
defaultnoexcept

The default move-assignment operator.

Parameters
argThe argument to move.
Returns
This instance.

◆ RegisterComponentType() [1/2]

template<class T >
void Arp::Base::Acf::Commons::LibraryBase::RegisterComponentType ( const String &  typeName)
inline

Registers a type of a component of this library.

DEPRECATED.

Template Parameters
TThe type of the component to register.
Parameters
typeNameThe explicit given type name of the component to register.

◆ RegisterComponentType() [2/2]

template<class T >
void Arp::Base::Acf::Commons::LibraryBase::RegisterComponentType ( void  )
inline

Registers a type of a component of this library.

DEPRECATED.

Template Parameters
TThe type of the component to register.

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