Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cFileMem Class Reference

#include <cFileMem.h>

Inheritance diagram for GrayLib::cFileMem:
Gray::cFile Gray::CFile Gray::cStream Gray::CObject Gray::cStreamInput Gray::cStreamOutput Gray::cStreamBase Gray::cStreamBase

Public Member Functions

 cFileMem () noexcept
 
virtual ~cFileMem ()
 
virtual bool isFileOpen () const override
 
virtual HRESULT OpenX (cStringF sFilePath="", OF_FLAGS_t nOpenFlags=OF_READ|OF_SHARE_DENY_NONE) override
 
virtual STREAM_SEEKRET_t Seek (STREAM_OFFSET_t lOffset=0, SEEK_ORIGIN_TYPE eSeekOrigin=SEEK_Set) override
 
virtual STREAM_POS_t GetPosition () const override
 
virtual STREAM_POS_t GetLength () const override
 
bool isLengthStatic () const noexcept
 
virtual void SetLength (STREAM_SEEKRET_t dwNewLen) override
 
virtual HRESULT ReadX (void *pData, size_t nDataSize) override
 
virtual HRESULT WriteX (const void *pData, size_t nDataSize) override
 
void SetDataStatic (void *pDataStart, size_t nDataSize)
 
void SetDataStr (const char *pszData)
 
void SetDataStr (const char *pszData, StrLen_t nDataChars)
 
void SetDataCopy (const BYTE *pDataStart, size_t nDataSize)
 
 UNITTEST_FRIEND (cFileMem)
 
- Public Member Functions inherited from Gray::cFile
 cFile ()
 
 cFile (cStringF sFilePath, OF_FLAGS_t nOpenFlags)
 
virtual ~cFile ()
 
virtual bool isValidCheck () const noexcept
 < memory allocation and structure definitions are valid. More...
 
int Read (void *pData, size_t nDataSize)
 
void Write (const void *pData, size_t nDataSize)
 
cStringF get_FilePath () const
 
cStringF get_FileTitleX () const
 
cStringF get_FileExt () const
 
bool IsFileExt (const FILECHAR_t *pszExt) const
 
OF_FLAGS_t get_Mode () const noexcept
 
OF_FLAGS_t get_ModeFlags () const noexcept
 
bool isModeWrite () const noexcept
 
bool isModeRead () const noexcept
 
virtual void Close (void) override
 
HANDLE DetachFileHandle ()
 
HRESULT OpenWait (cStringF sFilePath="", OF_FLAGS_t nOpenFlags=OF_READ|OF_SHARE_DENY_NONE, TIMESYSD_t nWaitTime=100)
 
HRESULT OpenCreate (cStringF sFilePath="", OF_FLAGS_t nOpenFlags=OF_CREATE|OF_WRITE, _SECURITY_ATTRIBUTES *pSa=nullptr)
 
bool SetFileTime (const cTimeFile *lpCreationTime, const cTimeFile *lpAccessTime, const cTimeFile *lpLastWriteTime)
 
bool SetFileTime (cTimeInt timeCreation, cTimeInt timeLastWrite)
 
HRESULT GetFileStatus (OUT cFileStatus &attr) const
 
virtual HRESULT FlushX () override
 
- Public Member Functions inherited from Gray::CFile
virtual ~CFile ()
 
HRESULT Write (const void *pData, size_t nDataSize)
 
HRESULT Read (void *pData, size_t nDataSize)
 
- Public Member Functions inherited from Gray::CObject
virtual ~CObject ()
 
virtual void AssertValid () const
 < memory allocation and structure definitions are valid. More...
 
virtual void Serialize (cArchive &a)
 
- Public Member Functions inherited from Gray::cStream
void SeekToBegin ()
 
STREAM_POS_t SeekToEnd ()
 
- Public Member Functions inherited from Gray::cStreamInput
 cStreamInput () noexcept
 
virtual ~cStreamInput ()
 
virtual size_t SetSeekSizeMin (size_t nSizeMin=k_FILE_BLOCK_SIZE)
 
virtual HRESULT ReadX (OUT void *pData, size_t nDataSize)
 
HRESULT ReadAll (OUT cHeapBlock &block, size_t nSizeExtra=0)
 
virtual HRESULT ReadStringLine (OUT char *pszBuffer, StrLen_t iSizeMax)
 
virtual HRESULT ReadStringLine (OUT wchar_t *pszBuffer, StrLen_t iSizeMax)
 
HRESULT ReadT (OUT void *pVal, size_t nSize)
 
template<typename TYPE >
HRESULT ReadT (OUT TYPE &val)
 
template<typename TYPE >
HRESULT ReadTN (OUT TYPE &val)
 
HRESULT ReadSize (OUT size_t &nSize)
 
template<typename TYPE >
HRESULT ReadSizeT (OUT TYPE &n)
 
HRESULT ReadHashCode (OUT UINT32 &nHashCode)
 
HRESULT ReadHashCode (OUT UINT64 &nHashCode)
 
HRESULT ReadN (OUT BYTE *pBuffer, size_t nSizeMax)
 
template<typename _CH >
HRESULT ReadStringN (OUT _CH *pszStr, StrLen_t iSizeMax)
 
virtual HRESULT ReadPeek (void *pData, size_t nDataSize)
 
- Public Member Functions inherited from Gray::cStreamBase
virtual ~cStreamBase ()
 
void SeekToBegin ()
 
STREAM_POS_t SeekToEnd ()
 
- Public Member Functions inherited from Gray::cStreamOutput
 cStreamOutput () noexcept
 
virtual ~cStreamOutput ()
 
HRESULT WriteT (const void *pVal, size_t nDataSize)
 
template<typename TYPE >
HRESULT WriteT (TYPE val)
 
HRESULT WriteSize (size_t nSize)
 
HRESULT WriteHashCode (HASHCODE_t nHashCode)
 
HRESULT WriteN (const void *pBuffer, size_t nSize)
 
template<typename _CH >
HRESULT WriteStringN (const _CH *pszStr)
 
template<typename _CH >
HRESULT WriteCharRepeat (_CH nChar, int nCount=1)
 
virtual HRESULT WriteString (const char *pszStr)
 
virtual HRESULT WriteString (const wchar_t *pszStr)
 
StrLen_t VPrintf (const char *pszFormat, va_list args)
 
StrLen_t VPrintf (const wchar_t *pszFormat, va_list args)
 
StrLen_t _cdecl Printf (const char *pszFormat,...)
 
StrLen_t _cdecl Printf (const wchar_t *pszFormat,...)
 
HRESULT WriteStream (cStreamInput &sInp, STREAM_POS_t nSizeMax=k_FILE_BLOCK_SIZE, IStreamProgressCallback *pProgress=nullptr, TIMESYSD_t nTimeout=0)
 Copy cStreamInput to this stream. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Gray::cFile
static HRESULT __stdcall DeletePath (const FILECHAR_t *pszFileName)
 
static HRESULT __stdcall DeletePathX (const FILECHAR_t *pszFilePath, DWORD nFileFlags=0)
 
static HRESULT __stdcall LoadFile (const FILECHAR_t *pszFilePath, OUT cHeapBlock &block, size_t nSizeExtra=0)
 
- Public Attributes inherited from Gray::CFile
cOSHandle m_hFile
 OSHandle for the open file. More...
 
- Static Public Attributes inherited from Gray::cStreamBase
static const BYTE k_SIZE_MASK = 0x80
 Used for WriteSize() More...
 
static const size_t k_FILE_BLOCK_SIZE = (32 * 1024)
 default arbitrary transfer block size. more than this is NOT more efficient. More...
 
- Protected Member Functions inherited from Gray::cFile
HRESULT OpenSetup (cStringF sFilePath, OF_FLAGS_t uModeFlags)
 
- Protected Member Functions inherited from Gray::CFile
bool isFileOpen () const noexcept
 
HRESULT OpenCreate (cStringF sFilePath="", OF_FLAGS_t nOpenFlags=OF_CREATE|OF_WRITE, _SECURITY_ATTRIBUTES *pSa=nullptr)
 
- Protected Attributes inherited from Gray::cFile
OF_FLAGS_t m_nOpenFlags
 MMSYSTEM uses high bits of 32 bit flags. OF_FLAGS_TYPE_ OF_READ etc. More...
 
- Protected Attributes inherited from Gray::CFile
cStringF m_strFileName
 store a copy of the full file path. MFC defined name. More...
 
- Static Protected Attributes inherited from Gray::cFile
static ITERATE_t sm_iFilesOpen = 0
 global count of all open files for this process. More...
 

Detailed Description

Acts like a file, but only exists in process memory. maybe static memory. This is mostly a dupe of cStreamQueue/cStreamStatic but acts like a override for a cFile.

Constructor & Destructor Documentation

◆ cFileMem()

GrayLib::cFileMem::cFileMem ( )
inlinenoexcept

◆ ~cFileMem()

virtual GrayLib::cFileMem::~cFileMem ( )
inlinevirtual

Member Function Documentation

◆ GetLength()

virtual STREAM_POS_t GrayLib::cFileMem::GetLength ( ) const
inlineoverridevirtual

Reimplemented from Gray::cFile.

◆ GetPosition()

virtual STREAM_POS_t GrayLib::cFileMem::GetPosition ( ) const
inlineoverridevirtual

Reimplemented from Gray::cFile.

◆ isFileOpen()

virtual bool GrayLib::cFileMem::isFileOpen ( ) const
inlineoverridevirtual

Reimplemented from Gray::cFile.

◆ isLengthStatic()

bool GrayLib::cFileMem::isLengthStatic ( ) const
inlinenoexcept

Can the file length grow on demand or not?

◆ OpenX()

virtual HRESULT GrayLib::cFileMem::OpenX ( cStringF  sFilePath = "",
OF_FLAGS_t  nOpenFlags = OF_READ | OF_SHARE_DENY_NONE 
)
inlineoverridevirtual

Not really used for memory files. sFilePath is ignored.

Reimplemented from Gray::cFile.

◆ ReadX()

HRESULT GrayLib::cFileMem::ReadX ( void *  pData,
size_t  nDataSize 
)
overridevirtual

Reimplemented from Gray::cFile.

◆ Seek()

virtual STREAM_SEEKRET_t GrayLib::cFileMem::Seek ( STREAM_OFFSET_t  lOffset = 0,
SEEK_ORIGIN_TYPE  eSeekOrigin = SEEK_Set 
)
inlineoverridevirtual

Reimplemented from Gray::cFile.

◆ SetDataCopy()

void GrayLib::cFileMem::SetDataCopy ( const BYTE *  pDataStart,
size_t  nDataSize 
)
inline

◆ SetDataStatic()

void GrayLib::cFileMem::SetDataStatic ( void *  pDataStart,
size_t  nDataSize 
)
inline

Set the length of a static length file.

◆ SetDataStr() [1/2]

void GrayLib::cFileMem::SetDataStr ( const char *  pszData)
inline

◆ SetDataStr() [2/2]

void GrayLib::cFileMem::SetDataStr ( const char *  pszData,
StrLen_t  nDataChars 
)
inline

◆ SetLength()

virtual void GrayLib::cFileMem::SetLength ( STREAM_SEEKRET_t  dwNewLen)
inlineoverridevirtual

Set the length of a non static length file.

Reimplemented from Gray::CFile.

◆ UNITTEST_FRIEND()

GrayLib::cFileMem::UNITTEST_FRIEND ( cFileMem  )

◆ WriteX()

HRESULT GrayLib::cFileMem::WriteX ( const void *  pData,
size_t  nDataSize 
)
overridevirtual
  • pData == nullptr = just test if i could write this much.

Reimplemented from Gray::cFile.


The documentation for this class was generated from the following files: