PLCnext API Documentation 25.0.2.69
SharedModuleLibraryLoader.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/System/Commons/Runtime/SharedLibrary.hpp"
9
10namespace Arp { namespace System { namespace Commons { namespace Extensibility
11{
12
15
17{
18public: // construction/destruction
19 explicit SharedModuleLibraryLoader(const String& path, SharedLibraryMemoryLockOption sharedLibraryMemoryLockOption);
29
30public: // operations
31 const String& GetFullPath() const;
32 String GetFileName() const;
33 bool Exists() const;
34 bool IsLoaded() const;
35 void Load();
36 void Unload();
38
39private: // fields
40 String path;
41 SharedLibraryMemoryLockOption sharedLibraryMemoryLockOption;
42 std::unique_ptr<SharedLibrary> library;
43
44};
45
46}}}} // end of namespace Arp::System::Commons::Extensibility
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Definition: SharedModuleLibraryLoader.hpp:17
void Load()
Loads the library
Definition: SharedModuleLibraryLoader.cpp:52
SharedModuleLibraryLoader(SharedModuleLibraryLoader &&arg)=default
Move constructor.
SharedModuleLibraryLoader(const SharedModuleLibraryLoader &arg)=delete
Copy constructor.
SharedModuleLibraryLoader(const String &path, SharedLibraryMemoryLockOption sharedLibraryMemoryLockOption)
Constructs an SharedModuleLibraryLoader instance.
Definition: SharedModuleLibraryLoader.cpp:15
bool Exists() const
Returns true if the library file exists.
Definition: SharedModuleLibraryLoader.cpp:40
bool IsLoaded() const
Returns true if the library is loaded
Definition: SharedModuleLibraryLoader.cpp:46
~SharedModuleLibraryLoader(void)
Destructs this instance and frees all resources.
Definition: SharedModuleLibraryLoader.cpp:22
SharedLibrary & GetSharedLibrary() const
Retuns the shared library
Definition: SharedModuleLibraryLoader.cpp:79
SharedModuleLibraryLoader & operator=(SharedModuleLibraryLoader &&arg)=default
Move-assignment operator.
String GetFileName() const
Returns the file name of the library (without directory)
Definition: SharedModuleLibraryLoader.cpp:34
void Unload()
Unload the library
Definition: SharedModuleLibraryLoader.cpp:68
const String & GetFullPath() const
Returns the full path to the library file
Definition: SharedModuleLibraryLoader.cpp:28
SharedModuleLibraryLoader & operator=(const SharedModuleLibraryLoader &arg)=delete
Copy-assignment operator.
High level API to enable work with dynamically loadable shared libraries.
Definition: SharedLibrary.hpp:21
SharedLibraryMemoryLockOption
Options to lock the memory of shared library by !:SharedLibrary when loading the binary.
Definition: SharedLibraryMemoryLockOption.hpp:17
Root namespace for the PLCnext API