summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvisvgm/dvisvgm-src/src/DLLoader.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/src/DLLoader.hpp')
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/DLLoader.hpp72
1 files changed, 0 insertions, 72 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/DLLoader.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/DLLoader.hpp
deleted file mode 100644
index 558c27d0c3f..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/DLLoader.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
-** DLLoader.hpp **
-** **
-** This file is part of dvisvgm -- a fast DVI to SVG converter **
-** Copyright (C) 2005-2021 Martin Gieseking <martin.gieseking@uos.de> **
-** **
-** This program is free software; you can redistribute it and/or **
-** modify it under the terms of the GNU General Public License as **
-** published by the Free Software Foundation; either version 3 of **
-** the License, or (at your option) any later version. **
-** **
-** This program is distributed in the hope that it will be useful, but **
-** WITHOUT ANY WARRANTY; without even the implied warranty of **
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
-** GNU General Public License for more details. **
-** **
-** You should have received a copy of the GNU General Public License **
-** along with this program; if not, see <http://www.gnu.org/licenses/>. **
-*************************************************************************/
-
-#ifndef DLLOADER_HPP
-#define DLLOADER_HPP
-
-#include <string>
-
-#ifdef _WIN32
- #include "windows.hpp"
-#else
- #include <dlfcn.h>
-#endif
-
-
-class DLLoader {
- public:
- DLLoader () =delete;
- explicit DLLoader (const std::string &dlname);
- DLLoader (DLLoader &&loader) =default;
- virtual ~DLLoader () {closeLibrary();}
- bool loaded () const {return _handle != nullptr;}
- bool loadLibrary (const std::string &dlname);
-
- protected:
- template <typename T> T loadSymbol (const char *name) const;
- void closeLibrary ();
-
- private:
-#ifdef _WIN32
- HINSTANCE _handle;
-#else
- void *_handle;
-#endif
-};
-
-
-/** Loads a function or variable from the dynamic/shared library.
- * @param[in] name name of function/variable to load
- * @return pointer to loaded symbol, or 0 if the symbol could not be loaded */
-template <typename T>
-T DLLoader::loadSymbol (const char *name) const {
- if (_handle) {
-#ifdef _WIN32
- return reinterpret_cast<T>(GetProcAddress(_handle, name));
-#else
- return reinterpret_cast<T>(dlsym(_handle, name));
-#endif
- }
- return nullptr;
-}
-
-#define LOAD_SYMBOL(sym) loadSymbol<decltype(&sym)>(#sym)
-
-#endif