48 lines
910 B
C++
48 lines
910 B
C++
|
|
#pragma once
|
|
|
|
#if !defined(MIJIN_UTIL_OS_HPP_INCLUDED)
|
|
#define MIJIN_UTIL_OS_HPP_INCLUDED 1
|
|
|
|
#include <csignal>
|
|
#include <string>
|
|
#include <string_view>
|
|
#include "../detect.hpp"
|
|
|
|
namespace mijin
|
|
{
|
|
|
|
//
|
|
// public defines
|
|
//
|
|
|
|
//
|
|
// public constants
|
|
//
|
|
|
|
//
|
|
// public types
|
|
//
|
|
|
|
struct LibraryHandle
|
|
{
|
|
void* data = nullptr;
|
|
|
|
constexpr operator bool() const noexcept { return data != nullptr; }
|
|
constexpr bool operator!() const noexcept { return data == nullptr; }
|
|
};
|
|
|
|
//
|
|
// public functions
|
|
//
|
|
|
|
[[nodiscard]] LibraryHandle openSharedLibrary(std::string_view libraryFile) noexcept;
|
|
[[nodiscard]] void* loadSymbolFromLibrary(const LibraryHandle library, const char* symbolName) noexcept;
|
|
void setCurrentThreadName(const char* threadName) noexcept;
|
|
|
|
[[nodiscard]] std::string makeLibraryFilename(std::string_view libraryName) noexcept;
|
|
|
|
} // namespace mijin
|
|
|
|
#endif // !defined(MIJIN_UTIL_OS_HPP_INCLUDED)
|