00001 /******************************************************************************* 00002 00003 Copyright (C) 2007 by Brendon Costa 00004 00005 This library is free software; you can redistribute it and/or modify 00006 it under the terms of the "LGPL Like" License defined in the file COPYING 00007 that should have been distributed along with this source. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00012 00013 You should have received a copy of the "LGPL Like" License 00014 along with this library; see the file COPYING. if not, it can be 00015 obtained from the EDoc++ website: 00016 http://edoc.sourceforge.net/license.html 00017 00018 *******************************************************************************/ 00019 #ifndef EDOC_DIRECTORYARCHIVE_H 00020 #define EDOC_DIRECTORYARCHIVE_H 00021 00022 #include "EDoc/ArchiveIFace.h" 00023 00024 namespace EDoc 00025 { 00026 //=========================================================================== 00027 /** \brief Represents an archive of data files within a directory. 00028 * 00029 * This is used to provide a consistent method for looking for files 00030 * recursivley within a directory. EDoc will treat a directory like a zip 00031 * file in that it is a filesystem element that contains a number of files. 00032 */ 00033 class DirectoryArchive : public ArchiveIFace 00034 { 00035 public: 00036 00037 //------------------------------------------------------------------------ 00038 /** \brief See EDoc::ArchiveIFace::HandlesType() 00039 */ 00040 virtual bool HandlesType(const ManagedFile& arch_filename); 00041 00042 //------------------------------------------------------------------------ 00043 /** \brief See EDoc::ArchiveIFace::ReadExtractAll() 00044 */ 00045 virtual std::list<ManagedFile> ReadExtractAll(const ManagedFile& arch_filename); 00046 00047 //------------------------------------------------------------------------ 00048 /** \brief See EDoc::ArchiveIFace::WriteOpen() 00049 */ 00050 virtual ManagedFile WriteOpen(const ManagedFile& arch_filename, 00051 std::string item_filename="default.edc"); 00052 00053 //------------------------------------------------------------------------ 00054 00055 }; 00056 //=========================================================================== 00057 00058 } 00059 00060 00061 #endif // EDOC_DIRECTORYARCHIVE_H