|  | /*!**************************************************************************** | 
|  |  | 
|  | @file         PVRTResourceFile.h | 
|  | @copyright    Copyright (c) Imagination Technologies Limited. | 
|  | @brief        Simple resource file wrapper | 
|  |  | 
|  | ******************************************************************************/ | 
|  | #ifndef _PVRTRESOURCEFILE_H_ | 
|  | #define _PVRTRESOURCEFILE_H_ | 
|  |  | 
|  | #include <stdlib.h> | 
|  | #include "PVRTString.h" | 
|  |  | 
|  | typedef void* (*PFNLoadFileFunc)(const char*, char** pData, size_t &size); | 
|  | typedef bool  (*PFNReleaseFileFunc)(void* handle); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @class CPVRTResourceFile | 
|  | @brief Simple resource file wrapper | 
|  | *****************************************************************************/ | 
|  | class CPVRTResourceFile | 
|  | { | 
|  | public: | 
|  | /*!*************************************************************************** | 
|  | @fn       			SetReadPath | 
|  | @param[in]			pszReadPath The path where you would like to read from | 
|  | @brief      		Sets the read path | 
|  | *****************************************************************************/ | 
|  | static void SetReadPath(const char* pszReadPath); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @fn       			GetReadPath | 
|  | @return 			The currently set read path | 
|  | @brief      		Returns the currently set read path | 
|  | *****************************************************************************/ | 
|  | static CPVRTString GetReadPath(); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @fn       			SetLoadReleaseFunctions | 
|  | @param[in]			pLoadFileFunc Function to use for opening a file | 
|  | @param[in]			pReleaseFileFunc Function to release any data allocated by the load function | 
|  | @brief      		This function is used to override the CPVRTResource file loading functions. If | 
|  | you pass NULL in as the load function CPVRTResource will use the default functions. | 
|  | *****************************************************************************/ | 
|  | static void SetLoadReleaseFunctions(void* pLoadFileFunc, void* pReleaseFileFunc); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @brief     			CPVRTResourceFile constructor | 
|  | @param[in]			pszFilename Name of the file you would like to open | 
|  | *****************************************************************************/ | 
|  | CPVRTResourceFile(const char* pszFilename); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @brief     			CPVRTResourceFile constructor | 
|  | @param[in]			pData A pointer to the data you would like to use | 
|  | @param[in]			i32Size The size of the data | 
|  | *****************************************************************************/ | 
|  | CPVRTResourceFile(const char* pData, size_t i32Size); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @fn       			~CPVRTResourceFile | 
|  | @brief      		Destructor | 
|  | *****************************************************************************/ | 
|  | virtual ~CPVRTResourceFile(); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @fn       			IsOpen | 
|  | @return 			true if the file is open | 
|  | @brief      		Is the file open | 
|  | *****************************************************************************/ | 
|  | bool IsOpen() const; | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @fn       			IsMemoryFile | 
|  | @return 			true if the file was opened from memory | 
|  | @brief      		Was the file opened from memory | 
|  | *****************************************************************************/ | 
|  | bool IsMemoryFile() const; | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @fn       			Size | 
|  | @return 			The size of the opened file | 
|  | @brief      		Returns the size of the opened file | 
|  | *****************************************************************************/ | 
|  | size_t Size() const; | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @fn       			DataPtr | 
|  | @return 			A pointer to the file data | 
|  | @brief      		Returns a pointer to the file data. If the data is expected | 
|  | to be a string don't assume that it is null-terminated. | 
|  | *****************************************************************************/ | 
|  | const void* DataPtr() const; | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @fn       			Close | 
|  | @brief      		Closes the file | 
|  | *****************************************************************************/ | 
|  | void Close(); | 
|  |  | 
|  | protected: | 
|  | bool m_bOpen; | 
|  | bool m_bMemoryFile; | 
|  | size_t m_Size; | 
|  | const char* m_pData; | 
|  | void *m_Handle; | 
|  |  | 
|  | static CPVRTString s_ReadPath; | 
|  | static PFNLoadFileFunc s_pLoadFileFunc; | 
|  | static PFNReleaseFileFunc s_pReleaseFileFunc; | 
|  | }; | 
|  |  | 
|  | #endif // _PVRTRESOURCEFILE_H_ | 
|  |  | 
|  | /***************************************************************************** | 
|  | End of file (PVRTResourceFile.h) | 
|  | *****************************************************************************/ | 
|  |  |