Nebula
Loading...
Searching...
No Matches
IO::ArchiveBase Class Reference

#include <archivebase.h>

Detailed Description

Base class of file archives.

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

Inherits Core::RefCounted.

Inherited by IO::ZipArchive.

Public Member Functions

 ArchiveBase ()
 constructor
 
virtual ~ArchiveBase ()
 destructor
 
bool Setup (const URI &archiveURI, const Util::String &rootPath)
 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
 
- Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
 
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
 

Protected Attributes

bool isValid
 
URI uri
 

Private Member Functions

 __DeclareClass (ArchiveBase)
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
 
- Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
 

Constructor & Destructor Documentation

◆ ArchiveBase()

IO::ArchiveBase::ArchiveBase ( )

constructor

◆ ~ArchiveBase()

IO::ArchiveBase::~ArchiveBase ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

IO::ArchiveBase::__DeclareClass ( ArchiveBase )
private

◆ ConvertToArchiveURI()

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!

◆ ConvertToPathInArchive()

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!

◆ Discard()

void IO::ArchiveBase::Discard ( )

discard the archive

◆ GetURI()

const URI & IO::ArchiveBase::GetURI ( ) const
inline

get the URI of the archive

◆ IsValid()

bool IO::ArchiveBase::IsValid ( ) const
inline

return true if archive is valid

◆ ListDirectories()

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!

◆ ListFiles()

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!

◆ Setup()

bool IO::ArchiveBase::Setup ( const URI & archiveFileURI,
const Util::String & rootPath )

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).

Member Data Documentation

◆ isValid

bool IO::ArchiveBase::isValid
protected

◆ uri

URI IO::ArchiveBase::uri
protected

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