chxavurlrep.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:3k
源码类别:

Symbian

开发平台:

C/C++

  1. /*============================================================================*
  2.  *
  3.  * (c) 1995-2002 RealNetworks, Inc. Patents pending. All rights reserved.
  4.  *
  5.  *============================================================================*/
  6.  
  7. // -*-c++-*-
  8. #ifndef _UTIL_URLRep_H
  9. #define _UTIL_URLRep_H
  10. #include "hxstring.h"
  11. #include "chxavvector.h"
  12. #include "chxavescapedstring.h"
  13. #include "char_stack.h"
  14. class CharStack;
  15. class CHXAvURLRep {
  16. public:
  17.     CHXAvURLRep(const CHXString& url_string="");
  18.     CHXAvURLRep(const CHXString& protocol, const CHXString& host,
  19.      int port=0, 
  20.      const CHXString& path="",
  21.      const CHXString& query="");
  22.     CHXAvURLRep(const CHXString& protocol, const CHXString& host,
  23.      int port, 
  24.      const CHXAvEscapedString& path,
  25.      const CHXAvEscapedString& query);
  26.     ~CHXAvURLRep();
  27.     int operator==(const CHXAvURLRep&) const;
  28.     int operator!=(const CHXAvURLRep&) const;
  29.     const CHXString& String() const;
  30.     const CHXString& Protocol() const;
  31.     const CHXString& Host() const;
  32.     int Port() const;
  33.     const CHXString& Path() const;
  34.     const CHXAvEscapedString& EscapedPath() const;
  35.     const CHXString& Query() const;
  36.     const CHXAvEscapedString& EscapedQuery() const;
  37.     const CHXAvEscapedString& EscapedFragment() const;
  38.     bool ApplyRelativeURL(const CHXAvURLRep& url);  //implemented in apply_url.cpp
  39.     bool IsAbsoluteURL() const;
  40.     
  41.     bool HasNetPath() const;
  42.     bool HasAbsolutePath() const;
  43.     bool HasQuery() const;
  44.     bool HasFragment() const;
  45.     bool Valid() const; // is the URL valid
  46.     bool ValidProtocol() const; // is the protocol string valid
  47.     bool ValidHostname() const; // is the hostname valid
  48. private:    
  49.     static bool ParseURL(const CHXString& url,
  50.  CHXString& protocol, CHXString& host,
  51.  int& port, CHXAvEscapedString& path,
  52.  CHXAvEscapedString& query,
  53.  CHXAvEscapedString& fragment,
  54.  bool& hasNetPath,
  55.  bool& hasAbsPath,
  56.  bool& hasQuery,
  57.  bool& hasFragment);
  58.     static void BuildURL(CHXString& url,
  59.  const CHXString& protocol, const CHXString& host,
  60.  int port, const CHXAvEscapedString& path, 
  61.  const CHXAvEscapedString& query,
  62.  const CHXAvEscapedString& fragment,
  63.  bool hasNetPath,
  64.  bool hasAbsPath,
  65.  bool hasQuery,
  66.  bool hasFragment);
  67.     static void CollectChars(const char*& pu, const char* pExtraDelim,
  68.      CharStack& token);
  69.     CHXString m_String; // url string
  70.     CHXString m_Protocol; // protocol
  71.     CHXString m_Host; // host name
  72.     int m_Port; // port
  73.     CHXAvEscapedString m_Path; // path
  74.     CHXAvEscapedString m_Query;    // query
  75.     CHXAvEscapedString m_Fragment; // fragment
  76.     bool m_parseSuccess;        // Did the url string that was passed in parse
  77.                                 // ok?
  78.     bool m_hasNetPath;          // Does the URL contain a net path?
  79.     bool m_hasAbsPath;          // Does the URL contain an absolute path?
  80.     bool m_hasQuery;            // Does the URL contain a query string?
  81.     bool m_hasFragment;         // Does the URL contain a fragment string?
  82. };
  83. #endif // _UTIL_URLRep_H