#ifndef MEMORY_MAPPING_H
#define MEMORY_MAPPING_H
#include <cstdint>
#include "Namespace.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
#endif // MEMORY_MAPPING_H