The Nebula Device 3: IO::ArchiveBase Class Reference

The Nebula Device 3

IO::ArchiveBase Class Reference

#include <archivebase.h>

Inheritance diagram for IO::ArchiveBase:

Core::RefCounted IO::ZipArchive IO::Archive

Detailed Description

Base class of file archives. Subclasses of this class implemented support for specific archive formats, like zip.

(C) 2009 Radon Labs GmbH

Public Member Functions

 ArchiveBase ()
 constructor
virtual ~ArchiveBase ()
 destructor
bool Setup (const URI &archiveURI)
 setup the archive from an URI (without file extension)
void Discard ()
 discard the archive
bool IsValid () const
 return true if archive is valid
const URIGetURI () const
 get the URI of the archive
Util::Array< Util::StringListFiles (const Util::String &dirPathInArchive, const Util::String &pattern) const
 list all files in a directory in the archive
Util::Array< Util::StringListDirectories (const Util::String &dirPathInArchive, const Util::String &pattern) const
 list all subdirectories in a directory in the archive
URI ConvertToArchiveURI (const URI &fileURI) const
 convert a "file:" URI into a archive-specific URI pointing into this archive
Util::String ConvertToPathInArchive (const Util::String &absPath) const
 convert an absolute path to local path inside archive, returns empty string if absPath doesn't point into this archive
int GetRefCount () const
 get the current refcount
void AddRef ()
 increment refcount by one
void Release ()
 decrement refcount and destroy object if refcount is zero
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
const Util::StringGetClassName () const
 get the class name
Util::FourCC GetClassFourCC () const
 get the class FourCC code

Static Public Member Functions

static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

Member Function Documentation

bool IO::ArchiveBase::Setup ( const URI archiveFileURI  ) 

setup the archive from an URI (without file extension)

Setup the archive object from an URI pointing to an archive file. This method may return false if something went wrong (archive file not found, or wrong format).

Reimplemented in IO::ZipArchive.

Array< String > IO::ArchiveBase::ListFiles ( const Util::String dirPathInArchive,
const Util::String pattern 
) const

list all files in a directory in the archive

List all files in an archive directory. Override this method in a subclass!

Reimplemented in IO::ZipArchive.

Array< String > IO::ArchiveBase::ListDirectories ( const Util::String dirPathInArchive,
const Util::String pattern 
) const

list all subdirectories in a directory in the archive

List all directories in an archive directory. Override this method in a subclass!

Reimplemented in IO::ZipArchive.

URI IO::ArchiveBase::ConvertToArchiveURI ( const URI fileURI  )  const

convert a "file:" URI into a archive-specific URI pointing into this archive

This method should convert a "file:" URI into an URI suitable for an archive specific stream class.

Override this method in a subclass!

Reimplemented in IO::ZipArchive.

String IO::ArchiveBase::ConvertToPathInArchive ( const Util::String absPath  )  const

convert an absolute path to local path inside archive, returns empty string if absPath doesn't point into this archive

This method should convert an absolute file system path into a local path in the archive suitable for ListFiles() and ListDirectories().

Override this method in a subclass!

Reimplemented in IO::ZipArchive.

int Core::RefCounted::GetRefCount (  )  const [inline, inherited]

get the current refcount

Return the current refcount of the object.

void Core::RefCounted::AddRef (  )  [inline, inherited]

increment refcount by one

Increment the refcount of the object.

void Core::RefCounted::Release (  )  [inline, inherited]

decrement refcount and destroy object if refcount is zero

Decrement the refcount and destroy object if refcount is zero.

const Util::String & Core::RefCounted::GetClassName (  )  const [inline, inherited]

get the class name

Get the class name of the object.

Util::FourCC Core::RefCounted::GetClassFourCC (  )  const [inline, inherited]

get the class FourCC code

Get the class FourCC of the object.

void Core::RefCounted::DumpRefCountingLeaks (  )  [static, inherited]

dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

This method should be called as the very last before an application exits.