⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 url.h

📁 mgcp协议源代码。支持多种编码:g711
💻 H
字号:
/* * url.h * * Universal Resource Locator (for HTTP/HTML) class. * * Portable Windows Library * * Copyright (c) 1993-1998 Equivalence Pty. Ltd. * * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is Portable Windows Library. * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Portions are Copyright (C) 1993 Free Software Foundation, Inc. * All Rights Reserved. * * Contributor(s): ______________________________________. * * $Log: url.h,v $ * Revision 1.15  1999/03/09 08:01:47  robertj * Changed comments for doc++ support (more to come). * * Revision 1.14  1999/02/16 08:07:10  robertj * MSVC 6.0 compatibility changes. * * Revision 1.13  1998/09/23 06:20:11  robertj * Added open source copyright license. * * Revision 1.12  1998/02/16 00:12:53  robertj * Added function to open a URL in a browser. * * Revision 1.11  1998/02/03 10:02:35  robertj * Added ability to get scheme, host and port from URL as a string. * * Revision 1.10  1998/02/03 06:18:49  robertj * Fixed URL encoding to be closer to RFC * * Revision 1.9  1997/01/12 04:22:54  robertj * Added has function so URL can be dictionary key. * * Revision 1.8  1996/08/19 13:37:28  robertj * Fixed URL parsing and definition (cannot have relative paths). * * Revision 1.7  1996/06/10 09:55:44  robertj * Added global function for query parameters parsing. * * Revision 1.6  1996/03/31 08:53:13  robertj * Added string representation for URI part only. * * Revision 1.5  1996/03/16 04:46:02  robertj * Added translation type to TranslateString() to accommodate query variables. * * Revision 1.4  1996/03/02 03:12:13  robertj * Added function to translate a string to a form suitable for inclusion in a URL. * * Revision 1.3  1996/02/03 11:06:27  robertj * Added splitting of query field into variables dictionary. * * Revision 1.2  1996/01/26 02:24:32  robertj * Further implemetation. * * Revision 1.1  1996/01/23 13:04:20  robertj * Initial revision * */#ifndef _PURL#define _PURL#ifdef __GNUC__#pragma interface#endif//////////////////////////////////////////////////////////////////////////////// PURL/** This class describes a Universal Resource Locator.
 This is the desciption of a resource location as used by the World Wide Web and the #PHTTPSocket# class. */class PURL : public PObject{  PCLASSINFO(PURL, PObject)  public:    /**Construct a new URL object from the URL string. */    PURL();    /**Construct a new URL object from the URL string. */
    PURL(      const char * cstr     /// C string representation of the URL.    );    /**Construct a new URL object from the URL string. */
    PURL(      const PString & str   /// String representation of the URL.    );  /**@name Overrides from class PObject */
  //@{    /**Compare the two URLs and return their relative rank.     @return       #LessThan#, #EqualTo# or #GreaterThan#       according to the relative rank of the objects.     */    virtual Comparison Compare(      const PObject & obj   /// Object to compare against.    ) const;    /**This function yields a hash value required by the #PDictionary#       class. A descendent class that is required to be the key of a dictionary       should override this function. The precise values returned is dependent       on the semantics of the class. For example, the #PString# class       overrides it to provide a hash function for distinguishing text strings.       The default behaviour is to return the value zero.       @return       hash function value for class instance.     */    virtual PINDEX HashFunction() const;    /**Output the contents of the URL to the stream as a string.     */    virtual void PrintOn(      ostream &strm   /// Stream to print the object into.    ) const;    /**Input the contents of the URL from the stream. The input is a URL in       string form.     */    virtual void ReadFrom(      istream &strm   /// Stream to read the objects contents from.    );  //@}   /**@name New functions for class. */
  //@{    /**Parse the URL string into the fields in the object instance. */    void Parse(      const char * cstr   /// URL as a string to parse.    );    /**Parse the URL string into the fields in the object instance. */
    void Parse(      const PString & str /// URL as a string to parse.    ) { Parse((const char *)str); }    /**Print/String output representation formats. */
    enum UrlFormat {
      /// Translate to a string as a full URL      FullURL,      
      /// Translate to a string as only path      PathOnly,     
      /// Translate to a string with no scheme or host      URIOnly,      
      /// Translate to a string with scheme and host/port      HostPortOnly      };    /**Convert the URL object into its string representation. The parameter       indicates whether a full or partial representation os to be produced.       @return       String representation of the URL.     */    PString AsString(      UrlFormat fmt = FullURL   /// The type of string to be returned.    ) const;
    /// Type for translation of strings to URL format,    enum TranslationType {
      /// Translate a username/password field for a URL.      LoginTranslation,
      /// Translate the path field for a URL.      PathTranslation,
      /// Translate the query parameters field for a URL.      QueryTranslation    };    /**Translate a string from general form to one that can be included into       a URL. All reserved characters for the particular field type are
       escaped.       @return       String for the URL ready translation.     */    static PString TranslateString(      const PString & str,    /// String to be translated.      TranslationType type    /// Type of translation.    );    /** Split a string in &= form to a dictionary of names and values. */    static void SplitQueryVars(      const PString & queryStr,   /// String to split into variables.      PStringToString & queryVars /// Dictionary of variable names and values.    );
    /// Get the scheme field of the URL.    const PCaselessString & GetScheme() const   { return scheme; }
    /// Get the username field of the URL.    const PString & GetUserName() const         { return username; }
    /// Get the password field of the URL.    const PString & GetPassword() const         { return password; }
    /// Get the hostname field of the URL.    const PCaselessString & GetHostName() const { return hostname; }
    /// Get the port field of the URL.    WORD GetPort() const                        { return port; }
    /// Get the path field of the URL as a string.    const PString & GetPathStr() const          { return pathStr; }
    /// Get the path field of the URL as a string array.    const PStringArray & GetPath() const        { return path; }
    /// Get the parameter (;) field of the URL.    const PString & GetParameters() const       { return parameters; }
    /// Get the fragment (##) field of the URL.    const PString & GetFragment() const         { return fragment; }
    /// Get the Query (?) field of the URL as a string.    const PString & GetQuery() const            { return queryStr; }
    /// Get the Query (?) field of the URL as a string dictionary.    PStringToString GetQueryVars() const        { return queryVars; }
    /// Set the port field in the URL.    void SetPort(WORD newPort)                  { port = newPort; }
    /**Open the URL in a browser.

       @return
       The browser was successfully opened. This does not mean the URL exists and was
       displayed.
     */
    static BOOL OpenBrowser(      const PString & url   /// URL to open    );  //@}  protected:    PCaselessString scheme;    PString username;    PString password;    PCaselessString hostname;    WORD port;    PString pathStr;    PStringArray path;    PString parameters;    PString fragment;    PString queryStr;    PStringToString queryVars;};#endif// End Of File ///////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -