PLCnext API Documentation 25.0.2.69
ModuleLibraryBase.hxx
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/System/Commons/Diagnostics/Logging/LogManager.hpp"
9#include "Arp/System/Commons/Extensibility/ModuleFactory.hxx"
10
11namespace Arp { namespace System { namespace Commons { namespace Extensibility
12{
13
27template<typename TModuleInterface>
29{
30protected: // construction/destruction
32 ModuleLibraryBase() = default;
34 ModuleLibraryBase(const ModuleLibraryBase& arg) = default;
36 ModuleLibraryBase(ModuleLibraryBase&& arg) noexcept = default;
40 ModuleLibraryBase& operator=(ModuleLibraryBase&& arg) noexcept = default;
42 virtual ~ModuleLibraryBase(void) noexcept = default;
43
44public: // operations
46
47protected:
49
50private: // fields
52};
53
56template<typename TModuleInterface>
58{
59 return this->factory;
60}
61
64template<typename TModuleInterface>
66{
67 return this->factory;
68}
69
70}}}} // namespace Arp::System::Commons::Extensibility
Factory class for extension modules
Definition: ModuleFactory.hxx:20
Base class for a library providing extension modules
Definition: ModuleLibraryBase.hxx:29
ModuleLibraryBase(const ModuleLibraryBase &arg)=default
Copy constructor.
virtual ~ModuleLibraryBase(void) noexcept=default
Destructs this instance and frees all resources.
ModuleLibraryBase(ModuleLibraryBase &&arg) noexcept=default
Move constructor.
ModuleLibraryBase & operator=(ModuleLibraryBase &&arg) noexcept=default
Move-assignment operator.
ModuleLibraryBase & operator=(const ModuleLibraryBase &arg)=default
Copy-assignment operator.
const ModuleFactory< TModuleInterface > & GetFactory() const
Returns a const reference to the ModuleFactory
Definition: ModuleLibraryBase.hxx:57
ModuleLibraryBase()=default
Constructs an ModuleLibraryBase instance.
Root namespace for the PLCnext API