irods  4.2.8
About: iRODS (the integrated Rule Oriented Data System) is a distributed data-management system for creating data grids, digital libraries, persistent archives, and real-time data systems.
  Fossies Dox: irods-4.2.8.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

irods::experimental::filesystem::path Class Reference

#include <path.hpp>

Collaboration diagram for irods::experimental::filesystem::path:
[legend]

Classes

class  iterator
 
class  reverse_iterator
 

Public Types

using value_type = char
 
using string_type = std::basic_string< value_type >
 
using const_iterator = iterator
 
using const_reverse_iterator = reverse_iterator
 

Public Member Functions

 path ()=default
 
 path (const path &_p)=default
 
 path (path &&_p) noexcept=default
 
 path (const value_type *_source)
 
 path (value_type *_source)
 
 path (string_type &&_source) noexcept
 
template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
 path (const Source &_source)
 
template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename = std::enable_if_t<std::is_same<ValueType, value_type>::value>>
 path (InputIterator _begin, InputIterator _end)
 
 ~path ()=default
 
auto operator= (const path &_p) -> path &=default
 
auto operator= (path &&_p) noexcept -> path &=default
 
auto operator= (const value_type *_p) -> path &
 
auto operator= (value_type *_p) -> path &
 
auto operator= (string_type &&_source) -> path &
 
template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto operator= (const Source &_source) -> path &
 
auto assign (string_type &&_source) -> path &
 
template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto assign (const Source &_source) -> path &
 
template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename = std::enable_if_t<std::is_same<ValueType, value_type>::value>>
auto assign (InputIterator _begin, InputIterator _end) -> path &
 
auto operator/= (const path &_p) -> path &
 
template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto operator/= (const Source &_source) -> path &
 
template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto append (const Source &_source) -> path &
 
template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename = std::enable_if_t<std::is_same<ValueType, value_type>::value>>
auto append (InputIterator _begin, InputIterator _end) -> path &
 
auto operator+= (const path &_p) -> path &
 
auto operator+= (const string_type &_p) -> path &
 
auto operator+= (const value_type *_p) -> path &
 
auto operator+= (value_type _p) -> path &
 
template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto operator+= (const Source &_p) -> path &
 
template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename = std::enable_if_t<std::is_same<ValueType, value_type>::value>>
auto concat (InputIterator _begin, InputIterator _end) -> path &
 
auto clear () -> void
 
auto remove_object_name () -> path &
 
auto replace_object_name (const path &_replacement={}) -> path &
 
auto replace_extension (const path &_replacement={}) -> path &
 
auto swap (path &_rhs) -> void
 
auto lexically_normal () const -> path
 
auto lexically_relative (const path &_base) const -> path
 
auto lexically_proximate (const path &_base) const -> path
 
auto c_str () const noexcept -> const value_type *
 
auto string () const -> string_type
 
 operator string_type () const
 
auto compare (const path &_p) const noexcept -> int
 
auto root_collection () const -> path
 
auto relative_path () const -> path
 
auto parent_path () const -> path
 
auto object_name () const -> path
 
auto stem () const -> path
 
auto extension () const -> path
 
auto empty () const -> bool
 
auto has_root_collection () const -> bool
 
auto has_relative_path () const -> bool
 
auto has_parent_path () const -> bool
 
auto has_object_name () const -> bool
 
auto has_stem () const -> bool
 
auto has_extension () const -> bool
 
auto is_absolute () const -> bool
 
auto is_relative () const -> bool
 
auto begin () const -> iterator
 
auto end () const -> iterator
 
auto rbegin () const -> reverse_iterator
 
auto rend () const -> reverse_iterator
 

Static Public Attributes

static constexpr value_type preferred_separator = '/'
 

Private Member Functions

void append_separator_if_needed (const path &_p)
 

Private Attributes

string_type value_
 

Static Private Attributes

static constexpr const value_type *const dot = "."
 
static constexpr const value_type *const dot_dot = ".."
 

Detailed Description

Definition at line 14 of file path.hpp.

Member Typedef Documentation

◆ const_iterator

◆ const_reverse_iterator

◆ string_type

Definition at line 22 of file path.hpp.

◆ value_type

Definition at line 21 of file path.hpp.

Constructor & Destructor Documentation

◆ path() [1/8]

irods::experimental::filesystem::path::path ( )
default

◆ path() [2/8]

irods::experimental::filesystem::path::path ( const path _p)
default

◆ path() [3/8]

irods::experimental::filesystem::path::path ( path &&  _p)
defaultnoexcept

◆ path() [4/8]

irods::experimental::filesystem::path::path ( const value_type _source)
inline

Definition at line 42 of file path.hpp.

◆ path() [5/8]

irods::experimental::filesystem::path::path ( value_type _source)
inline

Definition at line 47 of file path.hpp.

◆ path() [6/8]

irods::experimental::filesystem::path::path ( string_type &&  _source)
inlinenoexcept

Definition at line 52 of file path.hpp.

References irods::experimental::filesystem::client::move().

Here is the call graph for this function:

◆ path() [7/8]

template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
irods::experimental::filesystem::path::path ( const Source &  _source)
inline

Definition at line 61 of file path.hpp.

References irods::experimental::filesystem::client::begin(), and irods::experimental::filesystem::client::end().

Here is the call graph for this function:

◆ path() [8/8]

template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename = std::enable_if_t<std::is_same<ValueType, value_type>::value>>
irods::experimental::filesystem::path::path ( InputIterator  _begin,
InputIterator  _end 
)
inline

Definition at line 69 of file path.hpp.

◆ ~path()

irods::experimental::filesystem::path::~path ( )
default

Member Function Documentation

◆ append() [1/2]

template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto irods::experimental::filesystem::path::append ( const Source &  _source) -> path&
inline

◆ append() [2/2]

template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename = std::enable_if_t<std::is_same<ValueType, value_type>::value>>
auto irods::experimental::filesystem::path::append ( InputIterator  _begin,
InputIterator  _end 
) -> path&
inline

◆ append_separator_if_needed()

auto irods::experimental::filesystem::path::append_separator_if_needed ( const path _p)
private

Definition at line 285 of file path.cpp.

◆ assign() [1/3]

template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto irods::experimental::filesystem::path::assign ( const Source &  _source) -> path&
inline

Definition at line 115 of file path.hpp.

◆ assign() [2/3]

template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename = std::enable_if_t<std::is_same<ValueType, value_type>::value>>
auto irods::experimental::filesystem::path::assign ( InputIterator  _begin,
InputIterator  _end 
) -> path&
inline

Definition at line 123 of file path.hpp.

◆ assign() [3/3]

auto irods::experimental::filesystem::path::assign ( string_type &&  _source) -> path&
inline

Definition at line 108 of file path.hpp.

References irods::experimental::filesystem::client::move().

Here is the call graph for this function:

◆ begin()

auto irods::experimental::filesystem::path::begin ( void  ) const -> iterator

Definition at line 262 of file path.cpp.

Referenced by lexically_relative(), parent_path(), relative_path(), rend(), and root_collection().

◆ c_str()

auto irods::experimental::filesystem::path::c_str ( ) const -> const value_type*
inlinenoexcept

◆ clear()

auto irods::experimental::filesystem::path::clear ( ) -> void
inline

Definition at line 183 of file path.hpp.

References value_.

◆ compare()

auto irods::experimental::filesystem::path::compare ( const path _p) const -> int
noexcept

Definition at line 167 of file path.cpp.

References irods::experimental::filesystem::client::begin(), and irods::experimental::filesystem::client::end().

Here is the call graph for this function:

◆ concat()

template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename = std::enable_if_t<std::is_same<ValueType, value_type>::value>>
auto irods::experimental::filesystem::path::concat ( InputIterator  _begin,
InputIterator  _end 
) -> path&
inline

Definition at line 176 of file path.hpp.

◆ empty()

auto irods::experimental::filesystem::path::empty ( ) const -> bool
inline

Definition at line 221 of file path.hpp.

References value_.

Referenced by extension(), is_absolute(), lexically_normal(), relative_path(), and stem().

◆ end()

◆ extension()

auto irods::experimental::filesystem::path::extension ( ) const -> path

Definition at line 243 of file path.cpp.

References dot, dot_dot, empty(), and object_name().

Referenced by has_extension().

Here is the call graph for this function:

◆ has_extension()

auto irods::experimental::filesystem::path::has_extension ( ) const -> bool
inline

Definition at line 227 of file path.hpp.

References extension().

Here is the call graph for this function:

◆ has_object_name()

auto irods::experimental::filesystem::path::has_object_name ( ) const -> bool
inline

Definition at line 225 of file path.hpp.

References object_name().

Here is the call graph for this function:

◆ has_parent_path()

auto irods::experimental::filesystem::path::has_parent_path ( ) const -> bool
inline

Definition at line 224 of file path.hpp.

References parent_path().

Here is the call graph for this function:

◆ has_relative_path()

auto irods::experimental::filesystem::path::has_relative_path ( ) const -> bool
inline

Definition at line 223 of file path.hpp.

References relative_path().

Referenced by parent_path().

Here is the call graph for this function:

◆ has_root_collection()

auto irods::experimental::filesystem::path::has_root_collection ( ) const -> bool
inline

Definition at line 222 of file path.hpp.

References root_collection().

Referenced by relative_path().

Here is the call graph for this function:

◆ has_stem()

auto irods::experimental::filesystem::path::has_stem ( ) const -> bool
inline

Definition at line 226 of file path.hpp.

References stem().

Here is the call graph for this function:

◆ is_absolute()

auto irods::experimental::filesystem::path::is_absolute ( ) const -> bool
inline

Definition at line 228 of file path.hpp.

References empty(), preferred_separator, and value_.

Referenced by is_relative(), and root_collection().

Here is the call graph for this function:

◆ is_relative()

auto irods::experimental::filesystem::path::is_relative ( ) const -> bool
inline

Definition at line 229 of file path.hpp.

References is_absolute().

Here is the call graph for this function:

◆ lexically_normal()

auto irods::experimental::filesystem::path::lexically_normal ( ) const -> path

Definition at line 96 of file path.cpp.

References dot, dot_dot, empty(), irods.six::next, pid_age::p, and preferred_separator.

Here is the call graph for this function:

◆ lexically_proximate()

auto irods::experimental::filesystem::path::lexically_proximate ( const path _base) const -> path

Definition at line 161 of file path.cpp.

References pid_age::p.

◆ lexically_relative()

auto irods::experimental::filesystem::path::lexically_relative ( const path _base) const -> path

Definition at line 138 of file path.cpp.

References begin(), irods::experimental::filesystem::client::begin(), irods::experimental::filesystem::client::end(), and pid_age::p.

Here is the call graph for this function:

◆ object_name()

auto irods::experimental::filesystem::path::object_name ( ) const -> path

Definition at line 219 of file path.cpp.

References end(), and relative_path().

Referenced by extension(), has_object_name(), and stem().

Here is the call graph for this function:

◆ operator string_type()

irods::experimental::filesystem::path::operator string_type ( ) const
inline

Definition at line 202 of file path.hpp.

References value_.

◆ operator+=() [1/5]

auto irods::experimental::filesystem::path::operator+= ( const path _p) -> path&
inline

Definition at line 157 of file path.hpp.

References value_.

◆ operator+=() [2/5]

template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto irods::experimental::filesystem::path::operator+= ( const Source &  _p) -> path&
inline

Definition at line 165 of file path.hpp.

◆ operator+=() [3/5]

auto irods::experimental::filesystem::path::operator+= ( const string_type _p) -> path&
inline

Definition at line 158 of file path.hpp.

References value_.

◆ operator+=() [4/5]

auto irods::experimental::filesystem::path::operator+= ( const value_type _p) -> path&
inline

Definition at line 159 of file path.hpp.

References value_.

◆ operator+=() [5/5]

auto irods::experimental::filesystem::path::operator+= ( value_type  _p) -> path&
inline

Definition at line 160 of file path.hpp.

References value_.

◆ operator/=() [1/2]

auto irods::experimental::filesystem::path::operator/= ( const path _p) -> path&

Definition at line 39 of file path.cpp.

◆ operator/=() [2/2]

template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto irods::experimental::filesystem::path::operator/= ( const Source &  _source) -> path&
inline

Definition at line 134 of file path.hpp.

◆ operator=() [1/6]

auto irods::experimental::filesystem::path::operator= ( const path _p) -> path &=default
default

◆ operator=() [2/6]

template<typename Source , typename = std::enable_if_t<path_traits::is_pathable<Source>>>
auto irods::experimental::filesystem::path::operator= ( const Source &  _source) -> path&
inline

Definition at line 101 of file path.hpp.

References irods::experimental::filesystem::client::begin(), irods::experimental::filesystem::client::end(), irods::experimental::filesystem::client::move(), and value_.

Here is the call graph for this function:

◆ operator=() [3/6]

auto irods::experimental::filesystem::path::operator= ( const value_type _p) -> path&
inline

Definition at line 81 of file path.hpp.

References value_.

◆ operator=() [4/6]

auto irods::experimental::filesystem::path::operator= ( path &&  _p) -> path &=default
defaultnoexcept

◆ operator=() [5/6]

auto irods::experimental::filesystem::path::operator= ( string_type &&  _source) -> path&
inline

Definition at line 93 of file path.hpp.

References irods::experimental::filesystem::client::move(), and value_.

Here is the call graph for this function:

◆ operator=() [6/6]

auto irods::experimental::filesystem::path::operator= ( value_type _p) -> path&
inline

Definition at line 87 of file path.hpp.

References value_.

◆ parent_path()

auto irods::experimental::filesystem::path::parent_path ( ) const -> path

Definition at line 214 of file path.cpp.

References begin(), end(), has_relative_path(), and irods::join().

Referenced by has_parent_path().

Here is the call graph for this function:

◆ rbegin()

auto irods::experimental::filesystem::path::rbegin ( ) const -> reverse_iterator

Definition at line 275 of file path.cpp.

References end().

Here is the call graph for this function:

◆ relative_path()

auto irods::experimental::filesystem::path::relative_path ( ) const -> path

Definition at line 205 of file path.cpp.

References begin(), empty(), end(), has_root_collection(), and irods::join().

Referenced by has_relative_path(), and object_name().

Here is the call graph for this function:

◆ remove_object_name()

auto irods::experimental::filesystem::path::remove_object_name ( ) -> path&

Definition at line 58 of file path.cpp.

◆ rend()

auto irods::experimental::filesystem::path::rend ( ) const -> reverse_iterator

Definition at line 280 of file path.cpp.

References begin().

Here is the call graph for this function:

◆ replace_extension()

auto irods::experimental::filesystem::path::replace_extension ( const path _replacement = {}) -> path&

Definition at line 77 of file path.cpp.

◆ replace_object_name()

auto irods::experimental::filesystem::path::replace_object_name ( const path _replacement = {}) -> path&

Definition at line 71 of file path.cpp.

◆ root_collection()

auto irods::experimental::filesystem::path::root_collection ( ) const -> path

Definition at line 200 of file path.cpp.

References begin(), and is_absolute().

Referenced by has_root_collection().

Here is the call graph for this function:

◆ stem()

auto irods::experimental::filesystem::path::stem ( ) const -> path

Definition at line 224 of file path.cpp.

References dot, dot_dot, empty(), and object_name().

Referenced by has_stem().

Here is the call graph for this function:

◆ string()

auto irods::experimental::filesystem::path::string ( ) const -> string_type
inline

Definition at line 201 of file path.hpp.

References value_.

◆ swap()

auto irods::experimental::filesystem::path::swap ( path _rhs) -> void
inline

Definition at line 189 of file path.hpp.

References value_.

Member Data Documentation

◆ dot

constexpr const path::value_type *const irods::experimental::filesystem::path::dot = "."
staticconstexprprivate

Definition at line 31 of file path.hpp.

Referenced by extension(), lexically_normal(), and stem().

◆ dot_dot

constexpr const path::value_type *const irods::experimental::filesystem::path::dot_dot = ".."
staticconstexprprivate

Definition at line 32 of file path.hpp.

Referenced by extension(), lexically_normal(), and stem().

◆ preferred_separator

◆ value_

string_type irods::experimental::filesystem::path::value_
private

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