FC++  v0.9.0-9e9b65
FileCatalyst Fast File Transfers - C++ Library
fc::Local Class Reference

The class fc::Local is used to encapsulate local directories or files. More...

#include <FCPath.hpp>

Inheritance diagram for fc::Local:
Collaboration diagram for fc::Local:

Public Member Functions

virtual ~Local ()
 
 Local (const std::string &n)
 
virtual void setDefaultDir (const std::string &dir) const
 Set the default directory. More...
 
virtual const std::string & defaultDir () const
 Get the default directory. More...
 
virtual const std::string & separator () const
 Return the usual path separator, such as slash or backslash. More...
 
virtual Local operator+ (const std::string &name) const
 
virtual bool empty () const
 
virtual const char * c_str () const
 
virtual operator const char * () const
 
virtual operator const std::string & () const
 
virtual const std::string & str () const
 
virtual Nameoperator+= (const std::string &rhs)
 Append a filename to an existing Local or Remote object. More...
 
virtual bool isAbsolute () const
 Original name is absolute, such as /tmp/test.txt or C:\Files. More...
 
virtual bool isRelative () const
 Original name is relative, such as test.txt or ..\test.txt. More...
 
virtual const std::string & name () const
 The original name specified when this object was first instantiated. More...
 
virtual std::string create_temporary_filename (const fc::Options &options) const
 Create a temporary filename to use based on the prefix and suffix in the given options. More...
 
virtual const std::string & parentDir () const
 Get the parent directory if known, or a blank string if unknown. More...
 
virtual const std::string & filename () const
 Get the last component in full() which normally would be the filename. More...
 
virtual const std::string & full () const
 Get the full name. More...
 

Protected Member Functions

std::string findSeparator () const
 Logic to extract the directory separator from the default directory or the explicit name. More...
 
virtual NameclearCache ()
 Clear the mutable cache items. More...
 

Protected Attributes

std::string explicitName
 The name used when the object was instantiated. More...
 
std::string fileName
 the last component from full() More...
 
std::string parentDirectory
 the parent directory including the terminating slash More...
 
std::string fullDirAndName
 the name combined with the default directory More...
 

Static Protected Attributes

static std::string defaultLocalDirectory
 
static std::string defaultLocalSeparator
 
virtual Namesimplify ()
 Attempt to simplify the path by removing double slashes and things like "../". More...
 
static std::string simplify (std::string &path)
 Attempt to simplify the path by removing double slashes and things like "../". More...
 

Detailed Description

The class fc::Local is used to encapsulate local directories or files.

Constructor & Destructor Documentation

◆ ~Local()

fc::Local::~Local ( )
virtual

◆ Local()

fc::Local::Local ( const std::string &  n)
explicit

Member Function Documentation

◆ setDefaultDir()

void fc::Local::setDefaultDir ( const std::string &  dir) const
virtual

Set the default directory.

Will ensure it is terminated by a slash or backslash.

See also
fc::Name::defaultDir()
Warning
This has been deprecated as of 2020-08. Setting a default directory was causing a problem when interpreting relative paths.

Implements fc::Name.

◆ defaultDir()

const std::string & fc::Local::defaultDir ( ) const
virtual

Get the default directory.

This is guaranteed to be terminated by a slash or backslash.

See also
fc::Name::setDefaultDir()
Warning
This has been deprecated as of 2020-08. Setting a default directory was causing a problem when interpreting relative paths.

Implements fc::Name.

◆ separator()

const std::string & fc::Local::separator ( ) const
virtual

Return the usual path separator, such as slash or backslash.

See also
fc::Name::defaultDir()

Implements fc::Name.

◆ operator+()

fc::Local fc::Local::operator+ ( const std::string &  name) const
virtual

References fc::Name::simplify().

Here is the call graph for this function:

◆ empty()

virtual bool fc::Name::empty ( ) const
inlinevirtualinherited

References fc::Name::name().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_str()

virtual const char* fc::Name::c_str ( ) const
inlinevirtualinherited

References fc::Name::full().

Here is the call graph for this function:

◆ operator const char *()

virtual fc::Name::operator const char * ( ) const
inlinevirtualinherited

References fc::Name::full().

Here is the call graph for this function:

◆ operator const std::string &()

virtual fc::Name::operator const std::string & ( ) const
inlinevirtualinherited

References fc::Name::full().

Here is the call graph for this function:

◆ str()

virtual const std::string& fc::Name::str ( ) const
inlinevirtualinherited

References fc::Name::full().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ simplify() [1/2]

fc::Name & fc::Name::simplify ( )
virtualinherited

Attempt to simplify the path by removing double slashes and things like "../".

Here is the caller graph for this function:

◆ simplify() [2/2]

std::string fc::Name::simplify ( std::string &  path)
staticinherited

Attempt to simplify the path by removing double slashes and things like "../".

◆ operator+=()

fc::Name & fc::Name::operator+= ( const std::string &  rhs)
virtualinherited

Append a filename to an existing Local or Remote object.

◆ isAbsolute()

bool fc::Name::isAbsolute ( ) const
virtualinherited

Original name is absolute, such as /tmp/test.txt or C:\Files.

See also
fc::Name::isRelative()

◆ isRelative()

bool fc::Name::isRelative ( ) const
virtualinherited

Original name is relative, such as test.txt or ..\test.txt.

See also
fc::Name::isAbsolute()
Here is the caller graph for this function:

◆ name()

const std::string & fc::Name::name ( ) const
virtualinherited

The original name specified when this object was first instantiated.

You probably want to use full() instead.

Here is the caller graph for this function:

◆ create_temporary_filename()

std::string fc::Name::create_temporary_filename ( const fc::Options options) const
virtualinherited

Create a temporary filename to use based on the prefix and suffix in the given options.

This is intended for internal use by FC++ to generate a usable temporary name, and likely doesn't need to be called directly.

See also
fc::Options::setTmpFilenames()

◆ parentDir()

const std::string & fc::Name::parentDir ( ) const
virtualinherited

Get the parent directory if known, or a blank string if unknown.

The directory name (if not empty) will always be terminated with / or \. For example:

Original Name parentDir()
test.txt
../test.txt ../
/tmp/foo/bar/name.txt /tmp/foo/bar/
/testing/123/ /testing/
/ /

◆ filename()

const std::string & fc::Name::filename ( ) const
virtualinherited

Get the last component in full() which normally would be the filename.

◆ full()

const std::string & fc::Name::full ( ) const
virtualinherited

Get the full name.

Most of the time, this is the method you'll want to call to generate a path or filename.

Returns
the full name, combined with the default directory when appropriate
Here is the caller graph for this function:

◆ findSeparator()

std::string fc::Name::findSeparator ( ) const
protectedinherited

Logic to extract the directory separator from the default directory or the explicit name.

◆ clearCache()

fc::Name & fc::Name::clearCache ( )
protectedvirtualinherited

Clear the mutable cache items.

Member Data Documentation

◆ defaultLocalDirectory

std::string fc::Local::defaultLocalDirectory
staticprotected

◆ defaultLocalSeparator

std::string fc::Local::defaultLocalSeparator
staticprotected

◆ explicitName

std::string fc::Name::explicitName
protectedinherited

The name used when the object was instantiated.

◆ fileName

std::string fc::Name::fileName
mutableprotectedinherited

the last component from full()

◆ parentDirectory

std::string fc::Name::parentDirectory
mutableprotectedinherited

the parent directory including the terminating slash

◆ fullDirAndName

std::string fc::Name::fullDirAndName
mutableprotectedinherited

the name combined with the default directory


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