IBR-DTNSuite  0.8
ibrcommon::File Class Reference

#include <File.h>

Inheritance diagram for ibrcommon::File:

List of all members.

Public Member Functions

 File ()
 File (const string path)
virtual ~File ()
unsigned char getType () const
int getFiles (list< File > &files) const
bool isSystem () const
bool isDirectory () const
std::string getPath () const
std::string getBasename () const
int remove (bool recursive=false)
File get (string filename) const
File getParent () const
bool exists () const
void update ()
size_t size () const
time_t lastaccess () const
time_t lastmodify () const
time_t laststatchange () const
bool operator== (const ibrcommon::File &other) const
bool operator< (const ibrcommon::File &other) const

Static Public Member Functions

static void createDirectory (File &path)

Detailed Description

A File object can hold a reference to any existing or non-existing files/directories. It provides a common set of file operations.

Definition at line 31 of file File.h.


Constructor & Destructor Documentation

Instantiate a File object without a reference to a file.

Definition at line 27 of file File.cpp.

Referenced by getParent().

ibrcommon::File::File ( const string  path)

Instantiate a File object with a reference to a existing and non-existing file.

Parameters:
pathFilename or path to reference to.

Definition at line 39 of file File.cpp.

References update().

Here is the call graph for this function:

ibrcommon::File::~File ( ) [virtual]

Destructor of the file.

Definition at line 106 of file File.cpp.


Member Function Documentation

void ibrcommon::File::createDirectory ( File path) [static]

This method creates a directory. This is done recursively.

Parameters:
pathThe path to create.

Definition at line 221 of file File.cpp.

References exists(), getParent(), getPath(), and update().

Referenced by dtn::storage::SQLiteBundleStorage::clear(), dtn::storage::SQLiteBundleStorage::componentUp(), createBundleStorage(), dtn::storage::DataStorage::DataStorage(), initialize_blobs(), and dtn::daemon::Configuration::Security::load().

Here is the call graph for this function:

File ibrcommon::File::get ( string  filename) const

Get a specific file in this directory.

Parameters:
filenameThe name of the file (not the full path).
Returns:
A file object of the contained file.

Definition at line 169 of file File.cpp.

References getPath().

Referenced by dtn::security::SecurityKeyManager::get(), dtn::security::SecurityKeyManager::hasKey(), dtn::storage::DataStorage::retrieve(), dtn::storage::DataStorage::run(), dtn::storage::SQLiteBundleStorage::SQLiteBundleStorage(), and dtn::security::SecurityKeyManager::store().

Here is the call graph for this function:

std::string ibrcommon::File::getBasename ( ) const

Returns the basename of the file.

Returns:
Basename of the file.

Definition at line 157 of file File.cpp.

int ibrcommon::File::getFiles ( list< File > &  files) const

Get all files in the directory. The given path in the constructor has to be a directory in this case.

Parameters:
filesA (empty) list to put the new file objects in.
Returns:
Returns zero on success and an error number on failure.

Definition at line 114 of file File.cpp.

References getPath(), and isDirectory().

Referenced by dtn::storage::DataStorage::DataStorage(), ibrcommon::TLSStream::init(), dtn::storage::DataStorage::iterateAll(), main(), and remove().

Here is the call graph for this function:

Get the parent of this file. This is always the containing directory.

Returns:
The parent directory of this file.

Definition at line 215 of file File.cpp.

References File().

Referenced by createDirectory().

Here is the call graph for this function:

unsigned char ibrcommon::File::getType ( ) const

Returns the type of the file. The type is only updated when calling update().

See also:
update()
Returns:
The filetype of the file (e.g. DT_REG, DT_LNK, DT_DIR, DT_UNKNOWN)

Definition at line 109 of file File.cpp.

Checks if a file is a directory.

Returns:
True, if the file is a directory.

Definition at line 146 of file File.cpp.

Referenced by getFiles(), ibrcommon::TLSStream::init(), dtn::security::SecurityCertificateManager::initialize(), initialize_blobs(), remove(), and dtn::net::FileMonitor::watch().

bool ibrcommon::File::isSystem ( ) const

Checks if a file is a system file like ".." and ".".

Returns:
True, if the file is a system file.

Definition at line 136 of file File.cpp.

Referenced by main(), and remove().

time_t ibrcommon::File::lastaccess ( ) const

Get the timestamp of the last access

Definition at line 243 of file File.cpp.

References getPath().

Referenced by dtn::storage::SQLiteBundleStorage::get().

Here is the call graph for this function:

time_t ibrcommon::File::lastmodify ( ) const

Get the timestamp of the last modification

Definition at line 250 of file File.cpp.

References getPath().

Referenced by dtn::security::SecurityKeyManager::get(), and dtn::storage::SQLiteBundleStorage::get().

Here is the call graph for this function:

Get the timestamp of the last status change

Definition at line 257 of file File.cpp.

References getPath().

Here is the call graph for this function:

bool ibrcommon::File::operator< ( const ibrcommon::File other) const

Definition at line 269 of file File.cpp.

bool ibrcommon::File::operator== ( const ibrcommon::File other) const

Definition at line 264 of file File.cpp.

int ibrcommon::File::remove ( bool  recursive = false)

Remove a file.

Parameters:
recursiveIf set to true, the deletion works recursive and deletes directories with files too.
Returns:
Returns zero on success and an error number on failure.

Definition at line 177 of file File.cpp.

References getFiles(), getPath(), isDirectory(), and isSystem().

Referenced by dtn::storage::SQLiteBundleStorage::clear(), dtn::net::FileConvergenceLayer::componentRun(), dtn::storage::SQLiteBundleStorage::componentUp(), dtn::storage::SQLiteDatabase::expire(), main(), dtn::storage::SQLiteDatabase::remove(), dtn::storage::DataStorage::run(), dtn::security::SecurityKeyManager::store(), and dtn::storage::SQLiteBundleStorage::store().

Here is the call graph for this function:

size_t ibrcommon::File::size ( ) const

Get the size of the file.

Returns:
The size in bytes.

Definition at line 236 of file File.cpp.

References getPath().

Referenced by ibrcommon::FileBLOB::__get_size(), and dtn::storage::SQLiteBundleStorage::store().

Here is the call graph for this function:

Updates file information like file type

See also:
getType()

Definition at line 76 of file File.cpp.

Referenced by createDirectory(), and File().


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