Newer
Older
invertedlogic / invertedlogic / iLFramework / toolkit / include / MemoryMapping.h
@John Ryland John Ryland on 10 Nov 2019 658 bytes add framework
#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