PLCnext API Documentation 25.0.2.69
ILibrary.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Acf/Commons/IComponentFactory.hpp"
9#include "Arp/Base/Acf/Commons/LibraryInfoKind.hpp"
10
11namespace Arp::Base::Acf::Commons
12{
13
19class ARP_EXPORT ILibrary
20{
21public: // usings
22
28 using MainEntry = ILibrary & (*)(void);
29
30public: // construction/destruction
31
33 ILibrary(void) = default;
34
37 ILibrary(ILibrary&& arg)noexcept = default;
38
41 ILibrary(const ILibrary& arg) = delete;
42
46 ILibrary& operator=(ILibrary&& arg)noexcept = default;
47
51 ILibrary& operator=(const ILibrary& arg) = delete;
52
54 virtual ~ILibrary(void) = default;
55
56public: // abstract operations
57
63 virtual void Initialize(void) = 0;
64
70 virtual void Dispose(void) = 0;
71
79
82 virtual const ArpVersion& GetBuildVersion(void)const = 0;
83
86 virtual const ArpVersion& GetLibraryVersion(void)const = 0;
87
91 virtual String GetLibraryInfoItem(LibraryInfoKind kind) const = 0;
92};
93
94} // end of namespace Arp::Base::Acf::Commons
95
96namespace Arp::System::Acf
97{
99}
This interface is used by the Acf to create components dynamically through configuration (....
Definition: IComponentFactory.hpp:20
Any Acf Library shall implement this interface.
Definition: ILibrary.hpp:20
virtual String GetLibraryInfoItem(LibraryInfoKind kind) const =0
Gets additional information about the library
ILibrary(ILibrary &&arg) noexcept=default
The move constructor.
virtual ~ILibrary(void)=default
The virtual default destructor.
ILibrary & operator=(ILibrary &&arg) noexcept=default
The move assignment operator.
virtual const ArpVersion & GetLibraryVersion(void) const =0
Gets the version of the library provided by its author.
ILibrary(const ILibrary &arg)=delete
The copy constructor is deleted.
virtual void Dispose(void)=0
Disposes this library.
virtual void Initialize(void)=0
Initializes this library.
ILibrary & operator=(const ILibrary &arg)=delete
The copy assignment operator is deleted.
virtual const ArpVersion & GetBuildVersion(void) const =0
Gets the version of the firmware or SDK which was used to build the shared library.
ILibrary(void)=default
The default constructor.
virtual IComponentFactory & GetComponentFactory(void)=0
Gets the component factory of this library to create instances of its provided components.
ILibrary &(*)(void) MainEntry
This is the prototype of the main entry point of any Arp library which shall be loaded dynamically by...
Definition: ILibrary.hpp:28
This class compounds Arp build version and infos.
Definition: ArpVersion.hpp:21
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
This is the namespace of the Application Component Framework.
Definition: ComponentBase.hpp:72