libzypp  10.5.0
zypp::filesystem::Pathname Class Reference

Pathname. More...

#include <Pathname.h>

List of all members.

Public Member Functions

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

Static Public Member Functions

static std::string showRoot (const Pathname &root_r, const Pathname &path_r)
 String representation as "(root)/path".
static std::string showRootIf (const Pathname &root_r, const Pathname &path_r)
 String representation as "(root)/path", unless root is "/" or empty.
static Pathname dirname (const Pathname &name_tv)
static std::string basename (const Pathname &name_tv)
static std::string extension (const Pathname &name_tv)
static Pathname absolutename (const Pathname &name_tv)
static Pathname relativename (const Pathname &name_tv)
static Pathname assertprefix (const Pathname &root_r, const Pathname &path_r)
 Return path_r prefixed with root_r, unless it is already prefixed.
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_tv)

Private Attributes

std::string::size_type prfx_i
std::string name_t

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")

Review. Maybe use COW pimpl, check storage.

remove prfx_i

Definition at line 45 of file Pathname.h.


Constructor & Destructor Documentation

zypp::filesystem::Pathname::Pathname ( ) [inline]

Default ctor: an empty path.

Definition at line 49 of file Pathname.h.

zypp::filesystem::Pathname::Pathname ( const std::string &  name_tv) [inline]

Ctor from string.

Definition at line 54 of file Pathname.h.

zypp::filesystem::Pathname::Pathname ( const char *  name_tv) [inline]

Ctor from char*.

Definition at line 58 of file Pathname.h.


Member Function Documentation

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

Assign.

Definition at line 62 of file Pathname.h.

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

Concatenate and assing.

See also:
cat

Definition at line 70 of file Pathname.h.

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

Concatenate and assing.

See also:
cat
Deprecated:
: use /=

Definition at line 76 of file Pathname.h.

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

String representation.

Definition at line 80 of file Pathname.h.

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

String representation as "(root)/path".

Definition at line 179 of file Pathname.cc.

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 184 of file Pathname.cc.

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

Url representation using dir schema.

Definition at line 172 of file Pathname.cc.

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

String representation.

Definition at line 93 of file Pathname.h.

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

Test for an empty path.

Definition at line 97 of file Pathname.h.

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

Test for an absolute path.

Definition at line 99 of file Pathname.h.

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

Test for a relative path.

Definition at line 101 of file Pathname.h.

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

Return all but the last component od this path.

Definition at line 104 of file Pathname.h.

Pathname zypp::filesystem::Pathname::dirname ( const Pathname name_tv) [static]

Definition at line 129 of file Pathname.cc.

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

Return the last component of this path.

Definition at line 108 of file Pathname.h.

string zypp::filesystem::Pathname::basename ( const Pathname name_tv) [static]

Definition at line 153 of file Pathname.cc.

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 115 of file Pathname.h.

string zypp::filesystem::Pathname::extension ( const Pathname name_tv) [static]

Definition at line 196 of file Pathname.cc.

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

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

Definition at line 119 of file Pathname.h.

static Pathname zypp::filesystem::Pathname::absolutename ( const Pathname name_tv) [inline, static]

Definition at line 120 of file Pathname.h.

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

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

Definition at line 124 of file Pathname.h.

static Pathname zypp::filesystem::Pathname::relativename ( const Pathname name_tv) [inline, static]

Definition at line 125 of file Pathname.h.

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 225 of file Pathname.cc.

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 139 of file Pathname.h.

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

Definition at line 239 of file Pathname.cc.

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 147 of file Pathname.h.

static Pathname zypp::filesystem::Pathname::extend ( const Pathname l,
const std::string &  r 
) [static]
void zypp::filesystem::Pathname::_assign ( const std::string &  name_tv) [private]

Definition at line 32 of file Pathname.cc.


Friends And Related Function Documentation

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

Definition at line 159 of file Pathname.h.

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

Definition at line 163 of file Pathname.h.

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

Concatenate two Pathname.

Definition at line 167 of file Pathname.h.

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

Concatenate two Pathname.

Deprecated:
: use /

Definition at line 173 of file Pathname.h.

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

Definition at line 177 of file Pathname.h.

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

Stream output

Definition at line 183 of file Pathname.h.


Member Data Documentation

std::string::size_type zypp::filesystem::Pathname::prfx_i [private]

Definition at line 151 of file Pathname.h.

std::string zypp::filesystem::Pathname::name_t [private]

Definition at line 152 of file Pathname.h.


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