move xlsxreader identity statics to dfhack lib

develop
Myk Taylor 2020-08-11 14:51:17 -07:00
parent cfc736caa1
commit 0bda289b17
4 changed files with 47 additions and 27 deletions

@ -40,6 +40,8 @@ set(MAIN_HEADERS
include/Module.h
include/Pragma.h
include/MemAccess.h
include/PluginManager.h
include/PluginStatics.h
include/Signal.hpp
include/TileTypes.h
include/Types.h
@ -72,6 +74,7 @@ set(MAIN_SOURCES
MiscUtils.cpp
Types.cpp
PluginManager.cpp
PluginStatics.cpp
TileTypes.cpp
VersionInfoFactory.cpp
RemoteClient.cpp

@ -0,0 +1,9 @@
#include "PluginStatics.h"
namespace DFHack {
// xlsxreader statics
DFHACK_EXPORT xlsx_file_handle_identity xlsx_file_handle::_identity;
DFHACK_EXPORT xlsx_sheet_handle_identity xlsx_sheet_handle::_identity;
}

@ -0,0 +1,34 @@
#pragma once
#include "DataIdentity.h"
namespace DFHack {
// xlsxreader definitions
struct 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 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 xlsx_file_handle {
typedef struct xlsxio_read_struct* xlsxioreader;
const xlsxioreader handle;
xlsx_file_handle(xlsxioreader handle): handle(handle) {}
static xlsx_file_handle_identity _identity;
};
struct xlsx_sheet_handle {
typedef struct xlsxio_read_sheet_struct* xlsxioreadersheet;
const xlsxioreadersheet handle;
xlsx_sheet_handle(xlsxioreadersheet handle): handle(handle) {}
static xlsx_sheet_handle_identity _identity;
};
}

@ -8,38 +8,12 @@
#include "DataFuncs.h"
#include "LuaTools.h"
#include "PluginManager.h"
#include "PluginStatics.h"
using namespace DFHack;
DFHACK_PLUGIN("xlsxreader");
struct 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 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 xlsx_file_handle {
const xlsxioreader handle;
xlsx_file_handle(xlsxioreader handle): handle(handle) {}
static xlsx_file_handle_identity _identity;
};
struct xlsx_sheet_handle {
const xlsxioreadersheet handle;
xlsx_sheet_handle(xlsxioreadersheet handle): handle(handle) {}
static xlsx_sheet_handle_identity _identity;
};
xlsx_file_handle_identity xlsx_file_handle::_identity;
xlsx_sheet_handle_identity xlsx_sheet_handle::_identity;
// returns NULL on error
xlsx_file_handle* open_xlsx_file(std::string filename) {
return new xlsx_file_handle(xlsxioread_open(filename.c_str()));