Created
January 6, 2013 03:04
-
-
Save shanewfx/4464955 to your computer and use it in GitHub Desktop.
[C++] FileReader.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef AVM_FILE_READER_H | |
#define AVM_FILE_READER_H | |
#include "DemuxUtil.h" | |
//#define FILE_MAPPING_READER | |
#ifndef FILE_MAPPING_READER | |
class CFileReader | |
{ | |
public: | |
CFileReader(); | |
virtual ~CFileReader(); | |
virtual bool Open(const WCHAR* lpFileName); | |
virtual bool Close(); | |
virtual DWORD Read(LONGLONG llReadPosition, DWORD dwBytesToRead, BYTE* pBuffer); | |
virtual LONGLONG GetFileSize() const | |
{ | |
#ifdef _MAC_ | |
return m_llFileSize; | |
#else | |
return m_liFileSize.QuadPart; | |
#endif | |
} | |
protected: | |
#ifdef _MAC_ | |
OSStatus ConvertUTF8NameToHFSUniStr255(const char* inName, HFSUniStr255* uniStr); | |
OSStatus OpenFileAndGetDataForkRef(const char* fileName, SInt8 permissions, SInt16* forkRefNum); | |
SInt16 m_hFile; | |
SInt64 m_llFileSize; | |
#else | |
HANDLE m_hFile; | |
LARGE_INTEGER m_liFileSize; | |
#endif | |
}; | |
#else | |
class CFileReader | |
{ | |
public: | |
CFileReader(); | |
virtual ~CFileReader(); | |
virtual bool Open(const WCHAR* lpFileName); | |
virtual bool Close(); | |
virtual DWORD Read(LONGLONG llReadPosition, DWORD dwBytesToRead, BYTE* pBuffer); | |
virtual LONGLONG GetFileSize() const | |
{ | |
return m_llFileSize; | |
} | |
private: | |
HANDLE m_hFileMapping; | |
HANDLE m_hFile; | |
LONGLONG m_llFileSize; | |
}; | |
#endif | |
#endif//AVM_FILE_READER_H |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment