7#ifndef ARP_USE_ARP_SYSTEM_ACF_COMMONS
8#include "Arp/Base/Acf/Commons/LibraryBase.hpp"
15#include "Arp/System/Core/ArpVersion.hpp"
16#include "Arp/System/Acf/ILibrary.hpp"
17#include "Arp/System/Acf/ComponentFactory.hpp"
19namespace Arp {
namespace System {
namespace Acf
27class LibraryBase :
public ILibrary
36 LibraryBase(AppDomain& appDomain,
const ArpVersion& buildVersion);
57 void AddComponentFactoryMethod(
const String& componentType,
FactoryMethod factoryMethod);
61 ComponentFactory componentFactory;
64 const ArpVersion buildVersion;
74 return this->buildVersion;
85 this->AddComponentFactoryMethod(TypeName<T>(), &T::Create);
97 this->AddComponentFactoryMethod(typeName, &T::Create);
This class serves as base class of all Library classes in Arp component projects.
Definition: LibraryBase.hpp:18
IComponentFactory::FactoryMethod FactoryMethod
The prototype of the component factory method.
Definition: LibraryBase.hpp:23
const ArpVersion & GetBuildVersion(void) const override
Gets the version of the firmware or SDK which was used to build the shared library.
Definition: LibraryBase.cpp:71
void RegisterComponentType(void)
Registers a type of a component of this library.
Definition: LibraryBase.hpp:79
~LibraryBase(void) override
The default destructor.
IComponentFactory & GetComponentFactory(void) override
Gets the component factory of this library to create instances of its provided components.
Definition: LibraryBase.cpp:65
LibraryBase(const ArpVersion &libraryVersion=ArpVersion{})
Constructs a LibraryBase instance.
Definition: LibraryBase.cpp:47
This is the namespace of the Application Component Framework.
Definition: ComponentBase.hpp:72
Root namespace for the PLCnext API