Viewing file: dircoll.h (2.58 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef DIRCOLL_H #define DIRCOLL_H
#include "zipios++/zipios-config.h"
#include "zipios++/fcoll.h" #include "zipios++/basicentry.h" #include "zipios++/filepath.h"
namespace zipios {
/** DirEntry is a BasicEntry. */ typedef BasicEntry DirEntry ;
/** \anchor dircol_anchor DirectoryCollection is a FileCollection that obtains its entries from a directory. */ class DirectoryCollection : public FileCollection { public:
/** Default Constructor. */ explicit DirectoryCollection() : _entries_loaded( false ), _recursive( true ) {}
/** Constructor. @param path A directory path name. If the name is not a valid directory the created DirectoryCollection will be invalid. @param load_now Load directory into memory now. Otherwise it will be done when it is first needed. */ explicit DirectoryCollection( const string &path, bool recursive = true, bool load_now = false ) ;
/* Default Copy constructor and copy assignment operator are sufficient. */
virtual void close() ;
virtual ConstEntries entries() const ;
virtual ConstEntryPointer getEntry( const string &name, MatchPath matchpath = MATCH ) const ;
virtual istream *getInputStream( const ConstEntryPointer &entry ) ;
virtual istream *getInputStream( const string &entry_name, MatchPath matchpath = MATCH ) ;
virtual int size() const ;
virtual FileCollection *clone() const ;
/** Destructor. */ virtual ~DirectoryCollection() ;
protected: mutable bool _entries_loaded ; bool _recursive ; // recurse into subdirs. FilePath _filepath ;
void loadEntries() const ; void load( bool recursive, const FilePath &subdir = FilePath() ) ; }; } // namespace
#endif
/** \file Header file that defines DirectoryCollection. */
/* Zipios++ - a small C++ library that provides easy access to .zip files. Copyright (C) 2000 Thomas Søndergaard This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|