5 #if !defined(ECERE_NOARCHIVE) && !defined(ECERE_VANILLA)
6 public enum ArchiveAddMode { replace, refresh, update, readOnlyDir };
8 public class ArchiveOpenFlags : uint
22 virtual ArchiveDir OpenDirectory(char * name, FileStats stats, ArchiveAddMode addMode);
23 virtual bool Clear(void);
25 virtual File FileOpen(char * fileName);
26 virtual FileAttribs FileExists(char * fileName);
27 virtual File FileOpenAtPosition(uint position);
28 virtual void SetBufferSize(uint bufferSize);
29 virtual void SetBufferRead(uint bufferRead);
31 property FileSize totalSize { set { totalSize = value; } get { return totalSize; } }
32 property uint bufferSize { set { SetBufferSize(value); } }
33 property uint bufferRead { set { SetBufferRead(value); } }
36 public class ArchiveDir
39 virtual ArchiveDir OpenDirectory(char * name, FileStats stats, ArchiveAddMode addMode);
40 virtual bool AddFromFile(char * name, File input, FileStats stats, ArchiveAddMode addMode, int compression, int * ratio, uint * newPosition);
41 virtual bool AddFromFileAtPosition(uint position, char * name, File input, FileStats stats, ArchiveAddMode addMode, int compression, int * ratio, uint * newPosition);
42 virtual bool Delete(char * fileName);
43 virtual bool Move(char * name, ArchiveDir to);
44 virtual bool Rename(char * name, char * newName);
45 virtual File FileOpen(char * fileName);
46 virtual FileAttribs FileExists(char * fileName);
48 bool Add(char * name, char * path, ArchiveAddMode addMode, int compression, int * ratio, uint * newPosition)
51 File file = ::FileOpen(path, read);
55 FileGetStats(path, stats);
56 result = AddFromFile(name, file, stats, addMode, compression, ratio, newPosition);
63 public Archive ArchiveOpen(char * fileName, ArchiveOpenFlags flags)
65 return EARFileSystem::OpenArchive(fileName, flags);
69 public bool ArchiveQuerySize(char * fileName, FileSize * size)
71 return EARFileSystem::QuerySize(fileName, size);