Initial Commit

This commit is contained in:
2024-08-07 09:09:36 -04:00
commit ca445435a0
458 changed files with 41370 additions and 0 deletions

64
common/FILEMAP.CPP Normal file
View File

@@ -0,0 +1,64 @@
#if defined(__FLAT__)
#include <common/filemap.hpp>
#include <common/openfile.hpp>
FileMap::FileMap(void)
: mMaxExtentHigh(0L), mMaxExtentLow(0L),
mPaging(ReadOnly), mProtection(Image), mhFileHandle(0)
{
}
FileMap::FileMap(const FileMap &/*someFileMap*/)
: mMaxExtentHigh(0L), mMaxExtentLow(0L),
mPaging(ReadOnly), mProtection(Image), mhFileHandle(0)
{
}
FileMap::FileMap(String mapName,DWORD maxExtentHigh,DWORD maxExtentLow,Paging paging,Protection protection)
: mMaxExtentHigh(maxExtentHigh), mMaxExtentLow(maxExtentLow), mPaging(paging),
mProtection(protection), mhFileHandle(0)
{
create(mapName,maxExtentHigh,maxExtentLow,paging,protection);
}
FileMap::FileMap(const FileHandle &someFileHandle)
: mMaxExtentHigh(0L), mMaxExtentLow(0), mhFileHandle(0)
{
maxExtentHigh(0L);
maxExtentLow(someFileHandle.size());
create(someFileHandle);
}
WORD FileMap::create(const FileHandle &someFileHandle)
{
if(FileHandle::Read==someFileHandle.access())mPaging=ReadOnly;
else if(FileHandle::Write==someFileHandle.access())mPaging=WriteCopy;
else if(FileHandle::ReadWrite==someFileHandle.access())mPaging=ReadWrite;
else mPaging=ReadOnly;
mProtection=Commit;
return create(String(""),0L,someFileHandle.size(),mPaging,mProtection,(HANDLE)someFileHandle);
}
WORD FileMap::create(String mapName,DWORD maxExtentHigh,DWORD maxExtentLow,Paging paging,Protection protection,HANDLE hMapFile)
{
mMaxExtentHigh=maxExtentHigh;
mMaxExtentLow=maxExtentLow;
mPaging=paging;
mProtection=protection;
destroyMap();
mhFileHandle=::CreateFileMapping((HANDLE)hMapFile,(LPSECURITY_ATTRIBUTES)0,paging|protection,maxExtentHigh,maxExtentLow,mapName);
return isOkay();
}
BOOL FileMap::open(const String &strName,DWORD maxExtentHigh,DWORD maxExtentLow,Paging paging,Protection protection,DWORD access,BOOL inherit)
{
destroyMap();
if(strName.isNull())return FALSE;
mhFileHandle=::OpenFileMapping(access,inherit,(LPSTR)(String&)strName);
mMaxExtentHigh=maxExtentHigh;
mMaxExtentLow=maxExtentLow;
mPaging=paging;
mProtection=protection;
return isOkay();
}
#endif