zipios::DirectoryCollection Class Reference

#include <dircoll.h>

Inheritance diagram for zipios::DirectoryCollection:
zipios::FileCollection

List of all members.

Public Member Functions

virtual FileCollectionclone () const
 Create a heap allocated clone of the object this method is called for.
virtual void close ()
 Closes the FileCollection.
 DirectoryCollection (const string &path, bool recursive=true, bool load_now=false)
 Constructor.
 DirectoryCollection ()
 Default Constructor.
virtual ConstEntries entries () const
virtual ConstEntryPointer getEntry (const string &name, MatchPath matchpath=MATCH) const
virtual istream * getInputStream (const string &entry_name, MatchPath matchpath=MATCH)
 Returns a pointer to an opened istream for the specified entry name.
virtual istream * getInputStream (const ConstEntryPointer &entry)
virtual int size () const
 Returns the number of entries in the FileCollection.
virtual ~DirectoryCollection ()
 Destructor.

Protected Member Functions

void load (bool recursive, const FilePath &subdir=FilePath())
void loadEntries () const

Protected Attributes

bool _entries_loaded
FilePath _filepath
bool _recursive

Detailed Description

DirectoryCollection is a FileCollection that obtains its entries from a directory.

Definition at line 19 of file dircoll.h.


Constructor & Destructor Documentation

zipios::DirectoryCollection::DirectoryCollection (  )  [inline, explicit]

Default Constructor.

Definition at line 23 of file dircoll.h.

Referenced by clone().

DirectoryCollection::DirectoryCollection ( const string &  path,
bool  recursive = true,
bool  load_now = false 
) [explicit]

Constructor.

Parameters:
path A directory path name. If the name is not a valid directory the created DirectoryCollection will be invalid.
recursive 
load_now Load directory into memory now. Otherwise it will be done when it is first needed.

Definition at line 15 of file dircoll.cpp.

References zipios::FileCollection::_filename, _filepath, zipios::FileCollection::_valid, zipios::FilePath::isDirectory(), and loadEntries().

DirectoryCollection::~DirectoryCollection (  )  [virtual]

Destructor.

Definition at line 116 of file dircoll.cpp.


Member Function Documentation

FileCollection * DirectoryCollection::clone (  )  const [virtual]

Create a heap allocated clone of the object this method is called for.

The caller is responsible for deallocating the clone when he is done with it.

Returns:
A heap allocated copy of the object this method is called for.

Implements zipios::FileCollection.

Definition at line 112 of file dircoll.cpp.

References DirectoryCollection().

void DirectoryCollection::close (  )  [virtual]

Closes the FileCollection.

Implements zipios::FileCollection.

Definition at line 28 of file dircoll.cpp.

References zipios::FileCollection::_valid.

ConstEntries DirectoryCollection::entries (  )  const [virtual]

Returns a vector of const pointers to the entries in the FileCollection.

Returns:
a ConstEntries containing the entries of the FileCollection.
Exceptions:
InvalidStateException Thrown if the collection is invalid.

Reimplemented from zipios::FileCollection.

Definition at line 33 of file dircoll.cpp.

References zipios::FileCollection::_valid, and loadEntries().

ConstEntryPointer DirectoryCollection::getEntry ( const string &  name,
MatchPath  matchpath = MATCH 
) const [virtual]

Returns a ConstEntryPointer to a FileEntry object for the entry with the specified name. To ignore the path part of the filename in search of a match, specify FileCollection::IGNORE as the second argument.

Parameters:
name A string containing the name of the entry to get.
matchpath Speficy MATCH, if the path should match as well, specify IGNORE, if the path should be ignored.
Returns:
A ConstEntryPointer to the found entry. The returned pointer equals zero if no entry is found.
Exceptions:
InvalidStateException Thrown if the collection is invalid.

Reimplemented from zipios::FileCollection.

Definition at line 44 of file dircoll.cpp.

References _entries_loaded, _filepath, zipios::FileCollection::_valid, loadEntries(), and zipios::FileCollection::MATCH.

Referenced by getInputStream().

std::istream * DirectoryCollection::getInputStream ( const string &  entry_name,
MatchPath  matchpath = MATCH 
) [virtual]

Returns a pointer to an opened istream for the specified entry name.

It is the callers responsibility to delete the stream when he is done with it. Returns 0, if there is no entry with the specified name in the FileCollection.

Parameters:
entry_name 
matchpath Speficy MATCH, if the path should match as well, specify IGNORE, if the path should be ignored.
Returns:
an open istream for the specified entry. The istream is allocated on heap and it is the users responsibility to delete it when he is done with it.
Exceptions:
InvalidStateException Thrown if the collection is invalid.

Implements zipios::FileCollection.

Definition at line 71 of file dircoll.cpp.

References _entries_loaded, _filepath, zipios::FileCollection::_valid, getEntry(), loadEntries(), and zipios::FileCollection::MATCH.

istream * DirectoryCollection::getInputStream ( const ConstEntryPointer entry  )  [virtual]

Returns a pointer to an opened istream for the specified FileEntry. It is the callers responsibility to delete the stream when he is done with it. Returns 0, if there is no such FileEntry in the FileCollection.

Parameters:
entry A ConstEntryPointer to the FileEntry to get an istream to.
Returns:
an open istream for the specified entry. The istream is allocated on heap and it is the users responsibility to delete it when he is done with it.
Exceptions:
InvalidStateException Thrown if the collection is invalid.

Implements zipios::FileCollection.

Definition at line 63 of file dircoll.cpp.

References zipios::FileCollection::_valid.

void DirectoryCollection::load ( bool  recursive,
const FilePath subdir = FilePath() 
) [protected]

Definition at line 129 of file dircoll.cpp.

References zipios::FileCollection::_entries, _filepath, and zipios::BasicEntry::setSize().

Referenced by loadEntries().

void DirectoryCollection::loadEntries (  )  const [protected]

Definition at line 119 of file dircoll.cpp.

References _entries_loaded, _recursive, and load().

Referenced by DirectoryCollection(), entries(), getEntry(), getInputStream(), and size().

int DirectoryCollection::size (  )  const [virtual]

Returns the number of entries in the FileCollection.

Returns:
the number of entries in the FileCollection.
Exceptions:
InvalidStateException Thrown if the collection is invalid.

Reimplemented from zipios::FileCollection.

Definition at line 104 of file dircoll.cpp.

References zipios::FileCollection::_entries, zipios::FileCollection::_valid, and loadEntries().


Member Data Documentation

Definition at line 60 of file dircoll.h.

Referenced by getEntry(), getInputStream(), and loadEntries().

Definition at line 62 of file dircoll.h.

Referenced by DirectoryCollection(), getEntry(), getInputStream(), and load().

Definition at line 61 of file dircoll.h.

Referenced by loadEntries().


The documentation for this class was generated from the following files:

Generated on Wed Nov 23 19:02:51 2011 for FreeCAD by  doxygen 1.6.1