SIEdit/lib/interleaf.h

46 lines
826 B
C
Raw Normal View History

2022-07-11 00:16:20 -04:00
#ifndef INTERLEAF_H
#define INTERLEAF_H
2022-07-17 21:51:16 -04:00
#include <fstream>
2022-07-11 00:16:20 -04:00
#include "core.h"
#include "object.h"
2022-07-11 00:16:20 -04:00
namespace si {
class Interleaf : public Core
{
public:
LIBWEAVER_EXPORT Interleaf();
2022-07-17 21:51:16 -04:00
LIBWEAVER_EXPORT void Clear();
LIBWEAVER_EXPORT bool Read(const char *f);
LIBWEAVER_EXPORT bool Read(const wchar_t *f);
//LIBWEAVER_EXPORT bool Write(const char *f) const;
//LIBWEAVER_EXPORT bool Write(const wchar_t *f) const;
2022-07-11 00:16:20 -04:00
private:
2022-07-17 21:51:16 -04:00
bool Read(std::ifstream &is);
//bool Write(std::ofstream &os) const;
bool ReadChunk(Core *parent, std::ifstream &is);
Object *ReadObject(std::ifstream &is);
uint32_t m_Version;
uint32_t m_BufferSize;
uint32_t m_BufferCount;
uint32_t m_OffsetCount;
std::vector<uint32_t> m_OffsetTable;
2022-07-11 04:48:20 -04:00
2022-07-17 21:51:16 -04:00
std::map<uint32_t, Object*> m_ObjectIndexTable;
2022-07-11 00:16:20 -04:00
};
}
#endif // INTERLEAF_H