#pragma once
#include "Common.h"
BEGIN_NAMESPACE


// C style API
struct MemoryMappingData;
MemoryMappingData* MemoryMapping_Open(const char* filename);
void* MemoryMapping_GetAddress(MemoryMappingData* mapping);
uint64_t MemoryMapping_GetSize(MemoryMappingData* mapping);
void MemoryMapping_Close(MemoryMappingData* mapping);


// C++ wrapper
class MemoryMapping
{
public:
	MemoryMapping(const char* filename);
	~MemoryMapping();
	void* address();
	uint64_t size();
private:
	struct MemoryMappingData* m_data;
};


END_NAMESPACE

