/* * This file and the companion PluginStatics.cpp contain static structures used * by DFHack plugins. Linking them here, into the dfhack library, instead of * into the plugins themselves allows the plugins to be freely unloaded and * reloaded without fear of causing cached references to static data becoming * corrupted. */ #pragma once #include #include "DataIdentity.h" namespace DFHack { // xlsxreader definitions struct DFHACK_EXPORT xlsx_file_handle_identity : public compound_identity { xlsx_file_handle_identity() :compound_identity(0, nullptr, nullptr, "xlsx_file_handle") {}; DFHack::identity_type type() override { return IDTYPE_OPAQUE; } }; struct DFHACK_EXPORT xlsx_sheet_handle_identity : public compound_identity { xlsx_sheet_handle_identity() :compound_identity(0, nullptr, nullptr, "xlsx_sheet_handle") {}; DFHack::identity_type type() override { return IDTYPE_OPAQUE; } }; struct DFHACK_EXPORT xlsx_file_handle { const xlsxioreader handle; xlsx_file_handle(xlsxioreader handle): handle(handle) {} static xlsx_file_handle_identity _identity; }; struct DFHACK_EXPORT xlsx_sheet_handle { const xlsxioreadersheet handle; xlsx_sheet_handle(xlsxioreadersheet handle): handle(handle) {} static xlsx_sheet_handle_identity _identity; }; }