6 #ifndef _INC_cFileMem_H
7 #define _INC_cFileMem_H
12 #include "../GrayLibBase.h"
34 : m_pDataStart(
nullptr)
45 return(m_pDataStart !=
nullptr);
50 HRESULT hRes = OpenSetup(sFilePath, nOpenFlags);
60 m_nPosition = lOffset;
63 m_nPosition += lOffset;
66 m_nPosition = m_nDataLength + lOffset;
83 return(m_nDataLength != 0 && !m_Data.
isValidPtr());
94 m_nDataLength = dwNewLen;
99 virtual HRESULT ReadX(
void* pData,
size_t nDataSize)
override;
100 virtual HRESULT WriteX(
const void* pData,
size_t nDataSize)
override;
105 m_pDataStart = (BYTE*)pDataStart;
106 m_nDataLength = nDataSize;
112 SetDataStatic((BYTE*)pszData,
StrT::Len(pszData));
117 SetDataStatic((BYTE*)pszData, nDataChars);
121 SetLength(nDataSize);
122 memcpy(m_pDataStart, pDataStart, nDataSize);
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define MIN(a, b)
Definition: SysTypes.h:457
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cFileMem.h:18
void SetDataStr(const char *pszData, StrLen_t nDataChars)
Definition: cFileMem.h:114
virtual HRESULT OpenX(cStringF sFilePath="", OF_FLAGS_t nOpenFlags=OF_READ|OF_SHARE_DENY_NONE) override
Definition: cFileMem.h:47
virtual bool isFileOpen() const override
Definition: cFileMem.h:43
bool isLengthStatic() const noexcept
Definition: cFileMem.h:80
virtual STREAM_SEEKRET_t Seek(STREAM_OFFSET_t lOffset=0, SEEK_ORIGIN_TYPE eSeekOrigin=SEEK_Set) override
Definition: cFileMem.h:54
UNITTEST_FRIEND(cFileMem)
void SetDataCopy(const BYTE *pDataStart, size_t nDataSize)
Definition: cFileMem.h:119
virtual void SetLength(STREAM_SEEKRET_t dwNewLen) override
Definition: cFileMem.h:86
virtual ~cFileMem()
Definition: cFileMem.h:39
virtual STREAM_POS_t GetLength() const override
Definition: cFileMem.h:75
cFileMem() noexcept
Definition: cFileMem.h:33
virtual STREAM_POS_t GetPosition() const override
Definition: cFileMem.h:71
void SetDataStr(const char *pszData)
Definition: cFileMem.h:110
void SetDataStatic(void *pDataStart, size_t nDataSize)
Definition: cFileMem.h:102
BYTE * get_DataBytes() const noexcept
Definition: cHeap.h:372
void Free()
Definition: cHeap.h:249
bool ReAlloc(size_t nSize)
Definition: cHeap.h:313
bool isValidPtr() const noexcept
Definition: cMem.h:371
LONG_PTR STREAM_OFFSET_t
Might be 64 or 32 bit. TODO SET USE_FILE_POS64.
Definition: cOSHandle.h:52
int StrLen_t
the length of a string in chars (bytes for UTF8, wchar_t for UNICODE). or offset in characters....
Definition: StrConst.h:32
UINT32 OF_FLAGS_t
Mask of file open flags OF_FLAGS_TYPE_.
Definition: cFile.h:77
LONG_PTR STREAM_SEEKRET_t
return from Seek()
Definition: cOSHandle.h:53
ULONG_PTR STREAM_POS_t
NOT same as FILE_SIZE_t in 32 bit. Why not ?
Definition: cOSHandle.h:54
SEEK_ORIGIN_TYPE
Definition: cOSHandle.h:34
@ SEEK_End
SEEK_END = FILE_END = STREAM_SEEK_END = 2 = relative to the end of the file.
Definition: cOSHandle.h:41
@ SEEK_Set
SEEK_SET = FILE_BEGIN = STREAM_SEEK_SET = 0 = relative to the start of the file.
Definition: cOSHandle.h:39
@ SEEK_Cur
SEEK_CUR = FILE_CURRENT = STREAM_SEEK_CUR = 1 = relative to the current position.
Definition: cOSHandle.h:40
static StrLen_t Len(const TYPE *pszStr) noexcept