8#include "Arp/System/Commons/Runtime/SharedLibraryMemoryLockOption.hpp"
11namespace Arp {
namespace System {
namespace Ve
13class ISharedLibraryService;
16namespace Arp {
namespace System {
namespace Commons {
namespace Runtime
23 using SymbolNames = std::vector<String>;
46 static String GetArpLibrariesDirectory(
void);
51 Arp::System::Ve::ISharedLibraryService* pSharedLibraryService =
nullptr;
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
High level API to enable work with dynamically loadable shared libraries.
Definition: SharedLibrary.hpp:21
void Load(const String &path, SharedLibraryMemoryLockOption sharedLibraryMemoryLockOption=SharedLibraryMemoryLockOption::Nothing)
Loads the specified shared library.
Definition: SharedLibrary.cpp:66
SharedLibrary(const SharedLibrary &arg)=delete
Copy contructor.
bool TryLoad(const String &path, SharedLibraryMemoryLockOption sharedLibraryMemoryLockOption=SharedLibraryMemoryLockOption::Nothing)
Loads the specified shared library.
Definition: SharedLibrary.cpp:86
static bool ProbeLibrary(const String &path, String &probedPath)
Probes the library
Definition: SharedLibrary.cpp:139
~SharedLibrary(void)
Destructs this instance and frees all resouces.
Definition: SharedLibrary.cpp:36
SharedLibrary & operator=(const SharedLibrary &arg)=delete
Assignment operator.
SharedLibrary(void)
Constructs an SharedLibrary instance.
Definition: SharedLibrary.cpp:23
static String GetFormattedPath(const String &path)
Formats the path depending on OS.
Definition: SharedLibrary.cpp:117
void * GetFunctionAddress(const String &symbolName)
Returns the address where specified symbol is located in the memory.
Definition: SharedLibrary.cpp:104
void Unload(void)
Unloads the shared library.
Definition: SharedLibrary.cpp:94
SymbolNames GetExportedFunctionNames(const String &path) const
Loads the specified shared library.
Definition: SharedLibrary.cpp:48
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