IBR-DTNSuite 0.6

ibrcommon::File Class Reference

#include <File.h>

Inheritance diagram for ibrcommon::File:
Collaboration 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)
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

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

ibrcommon::File::File ( )

Instantiate a File object without a reference to a file.

Definition at line 24 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 36 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 103 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 211 of file File.cpp.

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

Referenced by dtn::core::SQLiteBundleStorage::clear(), createBundleStorage(), dtn::core::DataStorage::DataStorage(), dtn::daemon::Configuration::Security::load(), dtn::core::SQLiteBundleStorage::openDatabase(), and setGlobalVars().

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 159 of file File.cpp.

References getPath().

Referenced by dtn::security::SecurityKeyManager::get(), dtn::security::SecurityKeyManager::hasKey(), dtn::core::SQLiteBundleStorage::openDatabase(), dtn::core::DataStorage::retrieve(), dtn::core::DataStorage::run(), 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 154 of file File.cpp.

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

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 111 of file File.cpp.

References getPath(), and isDirectory().

Referenced by dtn::core::DataStorage::DataStorage(), dtn::core::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 205 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 106 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 143 of file File.cpp.

Referenced by getFiles(), and remove().

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 133 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 233 of file File.cpp.

References getPath().

Here is the call graph for this function:

time_t ibrcommon::File::lastmodify ( ) const

Get the timestamp of the last modification

Definition at line 240 of file File.cpp.

References getPath().

Referenced by dtn::security::SecurityKeyManager::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 247 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 254 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 167 of file File.cpp.

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

Referenced by dtn::core::SQLiteBundleStorage::clear(), main(), dtn::core::DataStorage::run(), dtn::security::SecurityKeyManager::store(), and ibrcommon::TmpFileBLOB::~TmpFileBLOB().

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 226 of file File.cpp.

References getPath().

Referenced by ibrcommon::TmpFileBLOB::__get_size(), and ibrcommon::FileBLOB::__get_size().

Here is the call graph for this function:

void ibrcommon::File::update ( )

Updates file information like file type

See also:
getType()

Definition at line 73 of file File.cpp.

Referenced by createDirectory(), and File().


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