libzypp  17.6.0
zypp::filesystem::Pathname Class Reference

Pathname. More...

#include <Pathname.h>

Public Member Functions

 Pathname ()
 Default ctor: an empty path. More...
 
 Pathname (const std::string &name_r)
 Ctor from string. More...
 
 Pathname (const char *name_r)
 Ctor from char*. More...
 
 Pathname (const Pathname &rhs)
 Copy Ctor. More...
 
 Pathname (Pathname &&tmp)
 Move Ctor. More...
 
Pathnameoperator= (Pathname rhs)
 Assign. More...
 
Pathnameoperator/= (const Pathname &path_tv)
 Concatenate and assign. More...
 
Pathnameoperator+= (const Pathname &path_tv)
 Concatenate and assign. More...
 
const std::string & asString () const
 String representation. More...
 
Url asUrl (const std::string &scheme_r) const
 Url representation using scheme_r schema . More...
 
Url asUrl () const
 
Url asDirUrl () const
 
Url asFileUrl () const
 
const char * c_str () const
 String representation. More...
 
bool empty () const
 Test for an empty path. More...
 
bool absolute () const
 Test for an absolute path. More...
 
bool relative () const
 Test for a relative path. More...
 
bool emptyOrRoot () const
 Test for "" or "/". More...
 
Pathname dirname () const
 Return all but the last component od this path. More...
 
std::string basename () const
 Return the last component of this path. More...
 
std::string extension () const
 Return all of the characters in name after and including the last dot in the last element of name. More...
 
Pathname absolutename () const
 Return this path, adding a leading '/' if relative. More...
 
Pathname relativename () const
 Return this path, removing a leading '/' if absolute. More...
 
Pathname cat (const Pathname &r) const
 Concatenation of pathnames. More...
 
Pathname extend (const std::string &r) const
 Append string r to the last component of the path. More...
 

Static Public Member Functions

static std::string showRoot (const Pathname &root_r, const Pathname &path_r)
 String representation as "(root)/path". More...
 
static std::string showRootIf (const Pathname &root_r, const Pathname &path_r)
 String representation as "(root)/path", unless root is "/" or empty. More...
 
static Pathname dirname (const Pathname &name_r)
 
static std::string basename (const Pathname &name_r)
 
static std::string extension (const Pathname &name_r)
 
static Pathname absolutename (const Pathname &name_r)
 
static Pathname relativename (const Pathname &name_r)
 
static Pathname assertprefix (const Pathname &root_r, const Pathname &path_r)
 Return path_r prefixed with root_r, unless it is already prefixed. More...
 
static Pathname stripprefix (const Pathname &root_r, const Pathname &path_r)
 Return path_r with any root_r dir prefix striped. More...
 
static Pathname cat (const Pathname &l, const Pathname &r)
 
static Pathname extend (const Pathname &l, const std::string &r)
 

Private Member Functions

void _assign (const std::string &name_r)
 

Private Attributes

std::string _name
 

Friends

void swap (Pathname &lhs, Pathname &rhs)
 Swap. More...
 

Related Functions

(Note that these are not member functions.)

bool operator== (const Pathname &l, const Pathname &r)
 
bool operator!= (const Pathname &l, const Pathname &r)
 
Pathname operator/ (const Pathname &l, const Pathname &r)
 
Pathname operator+ (const Pathname &l, const Pathname &r)
 
bool operator< (const Pathname &l, const Pathname &r)
 
std::ostream & operator<< (std::ostream &str, const Pathname &obj)
 

Detailed Description

Pathname.

Note
For convenience Pathname is available as zypp::Pathname too.

Always stores normalized paths (no inner '.' or '..' components and no consecutive '/'es). Concatenation automatically adds the path separator '/'.

Todo:
Add support for handling extensions incl. stripping extensions from basename (basename("/path/foo.baa", ".baa") ==> "foo")

Definition at line 43 of file Pathname.h.

Constructor & Destructor Documentation

◆ Pathname() [1/5]

zypp::filesystem::Pathname::Pathname ( )
inline

Default ctor: an empty path.

Definition at line 47 of file Pathname.h.

◆ Pathname() [2/5]

zypp::filesystem::Pathname::Pathname ( const std::string &  name_r)
inline

Ctor from string.

Definition at line 51 of file Pathname.h.

◆ Pathname() [3/5]

zypp::filesystem::Pathname::Pathname ( const char *  name_r)
inline

Ctor from char*.

Definition at line 55 of file Pathname.h.

◆ Pathname() [4/5]

zypp::filesystem::Pathname::Pathname ( const Pathname rhs)
inline

Copy Ctor.

Definition at line 59 of file Pathname.h.

◆ Pathname() [5/5]

zypp::filesystem::Pathname::Pathname ( Pathname &&  tmp)
inline

Move Ctor.

Definition at line 71 of file Pathname.h.

Member Function Documentation

◆ operator=()

Pathname& zypp::filesystem::Pathname::operator= ( Pathname  rhs)
inline

Assign.

Definition at line 76 of file Pathname.h.

◆ operator/=()

Pathname& zypp::filesystem::Pathname::operator/= ( const Pathname path_tv)
inline

Concatenate and assign.

See also
cat

Definition at line 80 of file Pathname.h.

◆ operator+=()

Pathname& zypp::filesystem::Pathname::operator+= ( const Pathname path_tv)
inline

Concatenate and assign.

See also
cat
Deprecated:
: use /=

Definition at line 86 of file Pathname.h.

◆ asString()

const std::string& zypp::filesystem::Pathname::asString ( ) const
inline

String representation.

Definition at line 90 of file Pathname.h.

◆ showRoot()

std::string zypp::filesystem::Pathname::showRoot ( const Pathname root_r,
const Pathname path_r 
)
static

String representation as "(root)/path".

Definition at line 189 of file Pathname.cc.

◆ showRootIf()

std::string zypp::filesystem::Pathname::showRootIf ( const Pathname root_r,
const Pathname path_r 
)
static

String representation as "(root)/path", unless root is "/" or empty.

Definition at line 194 of file Pathname.cc.

◆ asUrl() [1/2]

Url zypp::filesystem::Pathname::asUrl ( const std::string &  scheme_r) const

Url representation using scheme_r schema .

Definition at line 171 of file Pathname.cc.

◆ asUrl() [2/2]

Url zypp::filesystem::Pathname::asUrl ( ) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 179 of file Pathname.cc.

◆ asDirUrl()

Url zypp::filesystem::Pathname::asDirUrl ( ) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 182 of file Pathname.cc.

◆ asFileUrl()

Url zypp::filesystem::Pathname::asFileUrl ( ) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 185 of file Pathname.cc.

◆ c_str()

const char* zypp::filesystem::Pathname::c_str ( ) const
inline

String representation.

Definition at line 109 of file Pathname.h.

◆ empty()

bool zypp::filesystem::Pathname::empty ( ) const
inline

Test for an empty path.

Definition at line 113 of file Pathname.h.

◆ absolute()

bool zypp::filesystem::Pathname::absolute ( ) const
inline

Test for an absolute path.

Definition at line 115 of file Pathname.h.

◆ relative()

bool zypp::filesystem::Pathname::relative ( ) const
inline

Test for a relative path.

Definition at line 117 of file Pathname.h.

◆ emptyOrRoot()

bool zypp::filesystem::Pathname::emptyOrRoot ( ) const
inline

Test for "" or "/".

Definition at line 120 of file Pathname.h.

◆ dirname() [1/2]

Pathname zypp::filesystem::Pathname::dirname ( ) const
inline

Return all but the last component od this path.

Definition at line 123 of file Pathname.h.

◆ dirname() [2/2]

Pathname zypp::filesystem::Pathname::dirname ( const Pathname name_r)
static

Definition at line 128 of file Pathname.cc.

◆ basename() [1/2]

std::string zypp::filesystem::Pathname::basename ( ) const
inline

Return the last component of this path.

Definition at line 127 of file Pathname.h.

◆ basename() [2/2]

string zypp::filesystem::Pathname::basename ( const Pathname name_r)
static

Definition at line 152 of file Pathname.cc.

◆ extension() [1/2]

std::string zypp::filesystem::Pathname::extension ( ) const
inline

Return all of the characters in name after and including the last dot in the last element of name.

If there is no dot in the last element of name then returns the empty string.

Definition at line 134 of file Pathname.h.

◆ extension() [2/2]

string zypp::filesystem::Pathname::extension ( const Pathname name_r)
static

Definition at line 206 of file Pathname.cc.

◆ absolutename() [1/2]

Pathname zypp::filesystem::Pathname::absolutename ( ) const
inline

Return this path, adding a leading '/' if relative.

Definition at line 138 of file Pathname.h.

◆ absolutename() [2/2]

static Pathname zypp::filesystem::Pathname::absolutename ( const Pathname name_r)
inlinestatic

Definition at line 139 of file Pathname.h.

◆ relativename() [1/2]

Pathname zypp::filesystem::Pathname::relativename ( ) const
inline

Return this path, removing a leading '/' if absolute.

Definition at line 143 of file Pathname.h.

◆ relativename() [2/2]

static Pathname zypp::filesystem::Pathname::relativename ( const Pathname name_r)
inlinestatic

Definition at line 144 of file Pathname.h.

◆ assertprefix()

Pathname zypp::filesystem::Pathname::assertprefix ( const Pathname root_r,
const Pathname path_r 
)
static

Return path_r prefixed with root_r, unless it is already prefixed.

Definition at line 235 of file Pathname.cc.

◆ stripprefix()

Pathname zypp::filesystem::Pathname::stripprefix ( const Pathname root_r,
const Pathname path_r 
)
static

Return path_r with any root_r dir prefix striped.

Definition at line 244 of file Pathname.cc.

◆ cat() [1/2]

Pathname zypp::filesystem::Pathname::cat ( const Pathname r) const
inline

Concatenation of pathnames.

"foo" / "baa" ==> "foo/baa"
"foo/" / "baa" ==> "foo/baa"
"foo" / "/baa" ==> "foo/baa"
"foo/" / "/baa" ==> "foo/baa"

Definition at line 161 of file Pathname.h.

◆ cat() [2/2]

Pathname zypp::filesystem::Pathname::cat ( const Pathname l,
const Pathname r 
)
static

Definition at line 261 of file Pathname.cc.

◆ extend() [1/2]

Pathname zypp::filesystem::Pathname::extend ( const std::string &  r) const
inline

Append string r to the last component of the path.

"foo/baa".extend( ".h" ) ==> "foo/baa.h"

Definition at line 169 of file Pathname.h.

◆ extend() [2/2]

static Pathname zypp::filesystem::Pathname::extend ( const Pathname l,
const std::string &  r 
)
static

◆ _assign()

void zypp::filesystem::Pathname::_assign ( const std::string &  name_r)
private

Definition at line 32 of file Pathname.cc.

Friends And Related Function Documentation

◆ swap

void swap ( Pathname lhs,
Pathname rhs 
)
friend

Swap.

Definition at line 64 of file Pathname.h.

◆ operator==()

bool operator== ( const Pathname l,
const Pathname r 
)
related

Definition at line 179 of file Pathname.h.

◆ operator!=()

bool operator!= ( const Pathname l,
const Pathname r 
)
related

Definition at line 183 of file Pathname.h.

◆ operator/()

Pathname operator/ ( const Pathname l,
const Pathname r 
)
related

Concatenate two Pathname.

Definition at line 187 of file Pathname.h.

◆ operator+()

Pathname operator+ ( const Pathname l,
const Pathname r 
)
related

Concatenate two Pathname.

Deprecated:
: use /

Definition at line 193 of file Pathname.h.

◆ operator<()

bool operator< ( const Pathname l,
const Pathname r 
)
related

Definition at line 197 of file Pathname.h.

◆ operator<<()

std::ostream & operator<< ( std::ostream &  str,
const Pathname obj 
)
related

Stream output

Definition at line 203 of file Pathname.h.

Member Data Documentation

◆ _name

std::string zypp::filesystem::Pathname::_name
private

Definition at line 173 of file Pathname.h.


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