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

Any Acf Library shall implement this interface. More...

#include <ILibrary.hpp>

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

Public Types

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

 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...
 
ILibraryoperator= (ILibrary &&arg) noexcept=default
 The move assignment operator. More...
 
ILibraryoperator= (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 IComponentFactoryGetComponentFactory (void)=0
 Gets the component factory of this library to create instances of its provided components. More...
 
virtual const ArpVersionGetBuildVersion (void) const =0
 Gets the version of the firmware or SDK which was used to build the shared library. More...
 
virtual const ArpVersionGetLibraryVersion (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

Any Acf Library shall implement this interface.

Any dynamic shared library which might be loaded by the Acf infrastructure must provide a library instance implementing this interface, which serves as entry point to the shared library code.

Member Typedef Documentation

◆ MainEntry

This is the prototype of the main entry point of any Arp library which shall be loaded dynamically by the Acf.

Any Acf library must export a function called ArpDynamicLibraryMain matching this prototype, which is declared as extern "C" to avoid name mangling through the compiler.

Constructor & Destructor Documentation

◆ ILibrary() [1/2]

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

The move constructor.

Parameters
argThe argument to move.

◆ ILibrary() [2/2]

Arp::Base::Acf::Commons::ILibrary::ILibrary ( const ILibrary arg)
delete

The copy constructor is deleted.

Parameters
argThe argument to copy.

Member Function Documentation

◆ Dispose()

virtual void Arp::Base::Acf::Commons::ILibrary::Dispose ( void  )
pure virtual

Disposes this library.

This operation is called before unloading the library by Acf. Implement this operation if special tasks are required before the shared library is unloaded.

Implemented in Arp::Base::Acf::Commons::LibraryBase.

◆ GetBuildVersion()

virtual const ArpVersion & Arp::Base::Acf::Commons::ILibrary::GetBuildVersion ( void  ) const
pure virtual

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

Returns
The Arp build version used to build the shared library.

Implemented in Arp::Base::Acf::Commons::LibraryBase.

◆ GetComponentFactory()

virtual IComponentFactory & Arp::Base::Acf::Commons::ILibrary::GetComponentFactory ( void  )
pure virtual

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

Returns
The component factory of this library.

Any dynamic shared library has a component factory to create component instances dynamically which are configured through Acf configuration.

Implemented in Arp::Base::Acf::Commons::LibraryBase.

◆ GetLibraryInfoItem()

virtual String Arp::Base::Acf::Commons::ILibrary::GetLibraryInfoItem ( LibraryInfoKind  kind) const
pure virtual

Gets additional information about the library

Parameters
kindKind of information to get
Returns
String of the requested information. Empty string if kind is not found.

Implemented in Arp::Base::Acf::Commons::LibraryBase.

◆ GetLibraryVersion()

virtual const ArpVersion & Arp::Base::Acf::Commons::ILibrary::GetLibraryVersion ( void  ) const
pure virtual

Gets the version of the library provided by its author.

Returns
The version of the library.

Implemented in Arp::Base::Acf::Commons::LibraryBase.

◆ Initialize()

virtual void Arp::Base::Acf::Commons::ILibrary::Initialize ( void  )
pure virtual

Initializes this library.

This operation is called after loading the library by Acf. Implement this operation if special tasks are required when the shared library was loaded.

Implemented in Arp::Base::Acf::Commons::LibraryBase.

◆ operator=() [1/2]

ILibrary & Arp::Base::Acf::Commons::ILibrary::operator= ( const ILibrary arg)
delete

The copy assignment operator is deleted.

Parameters
argThe argument to copy.
Returns
This instance.

◆ operator=() [2/2]

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

The move assignment operator.

Parameters
argThe argument to move.
Returns
This instance.

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