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)
 |