IBR-DTNSuite  0.10
ibrcommon::File Class Reference

#include <File.h>

Inheritance diagram for ibrcommon::File:
Inheritance graph
Collaboration diagram for ibrcommon::File:
Collaboration graph

Public Member Functions

 File ()
 
 File (const std::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 45 of file File.h.

Constructor & Destructor Documentation

ibrcommon::File::File ( )

Instantiate a File object without a reference to a file.

Definition at line 41 of file File.cpp.

Referenced by getParent().

ibrcommon::File::File ( const std::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 53 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 119 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 236 of file File.cpp.

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

Referenced by dtn::storage::SQLiteBundleStorage::clear(), dtn::storage::SQLiteBundleStorage::componentUp(), dtn::storage::DataStorage::DataStorage(), 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 183 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 171 of file File.cpp.

Referenced by isSystem(), and main().

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 127 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:

File ibrcommon::File::getParent ( ) const

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

Returns
The parent directory of this file.

Definition at line 230 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 122 of file File.cpp.

bool ibrcommon::File::isDirectory ( ) const

Checks if a file is a directory.

Returns
True, if the file is a directory.

Definition at line 160 of file File.cpp.

Referenced by getFiles(), ibrcommon::TLSStream::init(), dtn::security::SecurityCertificateManager::onConfigurationChanged(), 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 155 of file File.cpp.

References getBasename().

Referenced by main(), and remove().

Here is the call graph for this function:

time_t ibrcommon::File::lastaccess ( ) const

Get the timestamp of the last access

Definition at line 258 of file File.cpp.

References getPath().

Referenced by dtn::storage::SimpleBundleStorage::get(), and 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 265 of file File.cpp.

References getPath().

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

Here is the call graph for this function:

time_t ibrcommon::File::laststatchange ( ) const

Get the timestamp of the last status change

Definition at line 272 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 284 of file File.cpp.

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

Definition at line 279 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 191 of file File.cpp.

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

Referenced by dtn::storage::SQLiteBundleStorage::clear(), dtn::net::FileConvergenceLayer::componentRun(), dtn::storage::SQLiteBundleStorage::componentUp(), dtn::storage::SQLiteDatabase::expire(), main(), remove(), 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 251 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:

void ibrcommon::File::update ( )

Updates file information like file type

See Also
getType()

Definition at line 90 of file File.cpp.

Referenced by createDirectory(), and File().


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