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