00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_FILE_LIST_H_INCLUDED__ 00006 #define __I_FILE_LIST_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 #include "path.h" 00010 00011 namespace irr 00012 { 00013 namespace io 00014 { 00015 00017 00019 class IFileList : public virtual IReferenceCounted 00020 { 00021 public: 00023 00024 virtual u32 getFileCount() const = 0; 00025 00027 00031 virtual const io::path& getFileName(u32 index) const = 0; 00032 00034 00037 virtual const io::path& getFullFileName(u32 index) const = 0; 00038 00040 00043 virtual u32 getFileSize(u32 index) const = 0; 00044 00046 00049 virtual u32 getFileOffset(u32 index) const = 0; 00050 00052 00058 virtual u32 getID(u32 index) const = 0; 00059 00061 00064 virtual bool isDirectory(u32 index) const = 0; 00065 00067 00072 virtual s32 findFile(const io::path& filename, bool isFolder=false) const = 0; 00073 00075 virtual const io::path& getPath() const = 0; 00076 00078 00083 virtual u32 addItem(const io::path& fullPath, u32 offset, u32 size, bool isDirectory, u32 id=0) = 0; 00084 00086 virtual void sort() = 0; 00087 }; 00088 00089 } // end namespace irr 00090 } // end namespace io 00091 00092 00093 #endif 00094