//CFTTFile_ZLib - [2020-04-13 11:57:46]
#ifndef _CFTTFILE_ZLIB_H_
#define _CFTTFILE_ZLIB_H_

#include "zlib.h"
#include "CFTTFile.h"
#include "CFTTFile_AsyncQueue.h"

/*
00264F34 CFTTFile_ZLib::CFTTFile_ZLib(CFTTFile *,uint)
00264F9C CFTTFile_ZLib::~CFTTFile_ZLib()
00264FB8 CFTTFile_ZLib::~CFTTFile_ZLib()
0026399C CFTTFile_ZLib::Shutdown()

00264FC8 CFTTFile_ZLib::Read(void *,long long)
00265148 CFTTFile_ZLib::Write(void const*,long long)
00265162 CFTTFile_ZLib::GetPos()
00265168 CFTTFile_ZLib::Seek(long long,int)
00265260 CFTTFile_ZLib::GetAttributes()
00265264 CFTTFile_ZLib::Close()
00265290 CFTTFile_ZLib::IsOpen()
0026529C CFTTFile_ZLib::GetAsyncHandler()
002652C4 CFTTFile_ZLib::GetModeFlags()
00265860 CFTTFile_ZLib::UseBufferedAccess()

vtable_CFTTFile_ZLib_00329924:
  CFTTFile_ZLib::~CFTTFile_ZLib()
  CFTTFile_ZLib::~CFTTFile_ZLib()
  CFTTFile_ZLib::Read(void *,long long)
  CFTTFile_ZLib::Write(void const*,long long)
  CFTTFile_ZLib::GetPos()
  CFTTFile_ZLib::Seek(long long,int)
  CFTTFile_ZLib::GetAttributes()
  CFTTFile_ZLib::Close()
  CFTTFile_ZLib::IsOpen()
  CFTTFile::ReadAsync(void *,long long,long long,void *,CFTTAsyncEvent<TFTTFileAsyncEventData> *)
  CFTTFile::WriteAsync(void const*,long long,long long,void *,CFTTAsyncEvent<TFTTFileAsyncEventData> *)
  CFTTFile_ZLib::GetAsyncHandler()
  CFTTFile_ZLib::GetModeFlags()
  CFTTFile::GetMemoryMappedPos()
  CFTTFile_ZLib::UseBufferedAccess()
  CFTTFile::RequestFlushWrites()

0x60
*/

class CFTTFile_ZLib : public CFTTFile {
public:
  CFTTFile_ZLib(CFTTFile *pCFTTFile, uint filesize);   //00264F34
  virtual ~CFTTFile_ZLib();                            //00264F9C 00264FB8
  static void Shutdown();                              //0026399C
  virtual int64 Read(void *buf, int64 buflen);         //00264FC8
  virtual int64 Write(void const *buf, int64 buflen);  //00265148
  virtual int64 GetPos();                              //00265162
  virtual int64 Seek(int64 dpos, int whence);          //00265168
  virtual TFTTFileAttributes *GetAttributes();         //00265260
  virtual bool Close();                                //00265264
  virtual bool IsOpen();                               //00265290
  virtual CFTTFile_AsyncHandler *GetAsyncHandler();    //0026529C
  virtual int GetModeFlags();                          //002652C4
  virtual bool UseBufferedAccess() const;              //00265860

  CFTTFile *pFile_8;
  z_stream z_streamp_C;
  int field_44;
  TFTTFileAttributes attr_48;
  uint8 *pBuf_58;
  int field_5C;

  static CFTTFile_AsyncQueue *ms_pAsyncQueue;
};

#endif  //_CFTTFILE_ZLIB_H_