// OO wrapper around VFS file Handles, to simplify common usages #include "lib/res/handle.h" #include "lib/res/file/file.h" #include "ps/CStr.h" #include "ps/Errors.h" ERROR_GROUP(CVFSFile); ERROR_TYPE(CVFSFile, LoadFailed); ERROR_TYPE(CVFSFile, AlreadyLoaded); ERROR_TYPE(CVFSFile, InvalidBufferAccess); // Reads a file, then gives read-only access to the contents class CVFSFile { public: CVFSFile(); ~CVFSFile(); // Returns either PSRETURN_OK or PSRETURN_CVFSFile_LoadFailed. // Dies if a file has already been successfully loaded. PSRETURN Load(const char* filename, uint flags = 0); // These die if called when no file has been successfully loaded. const void* GetBuffer() const; size_t GetBufferSize() const; CStr GetAsString() const; private: FileIOBuf m_Buffer; size_t m_BufferSize; };