URI path component. More...
#include <path.h>
Public Types | |
| typedef  segments_type::const_iterator  | const_iterator | 
| segments const iterator type  More... | |
| typedef std::list< std::string > | segments_type | 
| segments type  More... | |
Public Member Functions | |
| bool | absolute () const | 
| Test if absolute, meaning path begins with "/".  More... | |
| void | absolute (bool v) | 
| Set whether absolute or not.  More... | |
| const std::string & | back () const | 
| Get back segment.  More... | |
| const_iterator | begin () const | 
| Get iterator at beginning.  More... | |
| void | clear () | 
| Clear segments and reset absolute and is_directory.  More... | |
| bool | empty () const | 
| Test if empty and not absolute.  More... | |
| std::string | encoding () const | 
| Calculate encoded string.  More... | |
| const_iterator | end () const | 
| Get iterator at end.  More... | |
| const std::string & | front () const | 
| Get front segment.  More... | |
| bool | is_directory () const | 
| Test if a directory, meaning the path ends in a "/".  More... | |
| void | is_directory (bool v) | 
| Set whether a directory or not.  More... | |
| bool | match_prefix (const path &rhs) const | 
| Test if the given other URI path is a prefix of this.  More... | |
| bool | operator!= (const path &rhs) const | 
| Not equal operator.  More... | |
| path | operator+ (const std::string &rhs) const | 
| Append unencoded segment and reset is_directory.  More... | |
| path | operator+ (const path &rhs) const | 
| Append path and set is_directory according to rhs.  More... | |
| path & | operator+= (const std::string &rhs) | 
| Append unencoded segment and reset is_directory.  More... | |
| path & | operator+= (const path &rhs) | 
| Append path and set is_directory according to rhs.  More... | |
| bool | operator< (const path &rhs) const | 
| Less operator.  More... | |
| bool | operator== (const path &rhs) const | 
| Get number of segments.  More... | |
| path () | |
| Construct.  More... | |
| path (const std::string &v) | |
| Construct from encoded string.  More... | |
| bool | pop_back (const path &back) | 
| Remove the back of the path if it matches the argument (including whether directory or not) and return whether removed/matched.  More... | |
| void | pop_front () | 
| Pop front segment and reset absolute.  More... | |
| size_t | size () const | 
| std::string | string () const | 
| Return path string. Added by Lauro.  More... | |
Static Public Attributes | |
| static const char | SEPARATOR_CHAR = '/' | 
| separator ('/')  More... | |
Private Attributes | |
| bool | absolute_ | 
| bool | is_directory_ | 
| segments_type | segments_ | 
Friends | |
| bool TECOMMONEXPORT | parse (std::string::const_iterator &first, std::string::const_iterator last, path &v, std::string *errs) | 
| Parse URI path, returning whether found or not and advancing first and setting path if found.  More... | |
URI path component.
Note that there are potential ambiguities when using ":" and "//" in paths in URIs (see RFC).
Syntax: Segments are pct-decoded after parsing.
ALPHA      =  x41-5A | x61-7A   ; A-Z | a-z
DIGIT      =  x30-39             ; 0-9
sub-delims = "!" | "$" | "&" | "'" | "(" | ")" | "*"
           | "+" | "," | ";" | "="
unreserved = ALPHA | DIGIT | "-" | "." | "_" | "~"
pchar      = unreserved | pct-encoded | sub-delims | ":" | "@"
segment    = *pchar
path       = *( "/" segment )
 
| typedef segments_type::const_iterator te::common::uri::path::const_iterator | 
| typedef std::list<std::string> te::common::uri::path::segments_type | 
| te::common::uri::path::path | ( | ) | 
Construct.
Definition at line 32 of file path.cpp.
Referenced by te::common::URL::addPath(), te::common::URL::beginPath(), te::common::URL::clearPath(), te::common::URL::endPath(), te::common::URL::setEncodedPathString(), te::common::URL::setIsAbsolutePath(), and te::common::URL::setIsDirectoryPath().
| te::common::uri::path::path | ( | const std::string & | v | ) | 
      
  | 
  inline | 
Test if absolute, meaning path begins with "/".
Definition at line 64 of file path.h.
Referenced by te::common::URL::setIsAbsolutePath().
      
  | 
  inline | 
| const std::string & te::common::uri::path::back | ( | ) | const | 
      
  | 
  inline | 
Get iterator at beginning.
Definition at line 111 of file path.h.
Referenced by te::common::URL::beginPath(), match_prefix(), and string().
| void te::common::uri::path::clear | ( | ) | 
Clear segments and reset absolute and is_directory.
Definition at line 40 of file path.cpp.
References absolute_, is_directory_, and segments_.
Referenced by te::common::URL::clearPath().
      
  | 
  inline | 
Test if empty and not absolute.
Definition at line 62 of file path.h.
Referenced by te::common::uri::uri::is_null(), and pop_back().
| std::string te::common::uri::path::encoding | ( | ) | const | 
Calculate encoded string.
Definition at line 137 of file path.cpp.
References te::common::uri::urisyn::encode(), is_directory_, te::common::uri::urisyn::PATH_TRAITS, segments_, and SEPARATOR_CHAR.
Referenced by te::common::uri::convert(), and te::common::uri::operator<<().
      
  | 
  inline | 
Get iterator at end.
Definition at line 112 of file path.h.
Referenced by te::common::URL::endPath(), match_prefix(), and string().
| const std::string & te::common::uri::path::front | ( | ) | const | 
      
  | 
  inline | 
Test if a directory, meaning the path ends in a "/".
Definition at line 68 of file path.h.
Referenced by te::common::URL::setIsDirectoryPath().
      
  | 
  inline | 
| bool te::common::uri::path::match_prefix | ( | const path & | rhs | ) | const | 
      
  | 
  inline | 
      
  | 
  inline | 
| path & te::common::uri::path::operator+= | ( | const std::string & | rhs | ) | 
Append unencoded segment and reset is_directory.
Definition at line 125 of file path.cpp.
References is_directory_, and segments_.
Append path and set is_directory according to rhs.
Definition at line 130 of file path.cpp.
References absolute_, is_directory_, and segments_.
| bool te::common::uri::path::operator< | ( | const path & | rhs | ) | const | 
Less operator.
Examines the following in order:
Definition at line 111 of file path.cpp.
References absolute_, is_directory_, and segments_.
| bool te::common::uri::path::operator== | ( | const path & | rhs | ) | const | 
Get number of segments.
Equal operator.
Definition at line 108 of file path.cpp.
References absolute_, is_directory_, and segments_.
| bool te::common::uri::path::pop_back | ( | const path & | back | ) | 
Remove the back of the path if it matches the argument (including whether directory or not) and return whether removed/matched.
Note that if this starts as a directory it stays a directory. If back is absolute and it does not match all of this or this is not absolute then there is no match.
Definition at line 80 of file path.cpp.
References absolute_, empty(), is_directory_, and segments_.
| void te::common::uri::path::pop_front | ( | ) | 
Pop front segment and reset absolute.
Definition at line 72 of file path.cpp.
References absolute_, is_directory_, and segments_.
| std::string te::common::uri::path::string | ( | ) | const | 
Return path string. Added by Lauro.
Definition at line 151 of file path.cpp.
References begin(), end(), is_directory_, and SEPARATOR_CHAR.
      
  | 
  friend | 
Parse URI path, returning whether found or not and advancing first and setting path if found.
Does not skip leading space.
If errs is specified the following take place:
errs. The segment is used without decoding (i.e. assumes an unencoded ''). Definition at line 169 of file path.cpp.
Referenced by path().
      
  | 
  private | 
Definition at line 116 of file path.h.
Referenced by clear(), match_prefix(), operator+=(), operator<(), operator==(), te::common::uri::parse(), pop_back(), and pop_front().
      
  | 
  private | 
Definition at line 117 of file path.h.
Referenced by clear(), encoding(), match_prefix(), operator+=(), operator<(), operator==(), te::common::uri::parse(), pop_back(), pop_front(), and string().
      
  | 
  private | 
Definition at line 118 of file path.h.
Referenced by back(), clear(), encoding(), front(), operator+=(), operator<(), operator==(), te::common::uri::parse(), pop_back(), and pop_front().
      
  | 
  static | 
separator ('/')
Definition at line 113 of file path.h.
Referenced by encoding(), te::common::uri::parse(), and string().