diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/Input.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/Input.h b/include/Input.h index bb740b0..9395687 100644 --- a/include/Input.h +++ b/include/Input.h @@ -35,4 +35,36 @@ class Stdin_t : public Input { extern Stdin_t Stdin; +enum ArchiveType { + ARCHIVE_BUILTIN = 0 +} + +class Archive : public Base { + public: + Archive(const String &, ArchiveType = 0) throw (GeneralException); + virtual ~Archive(); + static bool inarchive(const String &); + static Input & open(const String &) throw (GeneralException); + private: + bool inarchivein(const String &); + Input & openin(const String &) throw (GeneralException); + class FileTree : public Base { + public: + FileTree(const String & = "", size_t = 0, FileTree * = 0, int = 0); + virtual ~FileTree(); + int compute_ptrs(size_t = 0); + String name; + int type; + size_t size; + size_t ptr; + private: + void touched(); + FileTree * next, * prev, * father, * child; + } filetree; + String name; + Input archive; + Archive * next, * prev; + static Archive * header; +}; + #endif |