chxavurlrep.h

来自「symbian 下的helix player源代码」· C头文件 代码 · 共 101 行

H
101
字号
/*============================================================================*
 *
 * (c) 1995-2002 RealNetworks, Inc. Patents pending. All rights reserved.
 *
 *============================================================================*/
 
// -*-c++-*-

#ifndef _UTIL_URLRep_H
#define _UTIL_URLRep_H

#include "hxstring.h"
#include "chxavvector.h"
#include "chxavescapedstring.h"
#include "char_stack.h"

class CharStack;

class CHXAvURLRep {
public:
    CHXAvURLRep(const CHXString& url_string="");
    CHXAvURLRep(const CHXString& protocol, const CHXString& host,
	     int port=0, 
	     const CHXString& path="",
	     const CHXString& query="");
    CHXAvURLRep(const CHXString& protocol, const CHXString& host,
	     int port, 
	     const CHXAvEscapedString& path,
	     const CHXAvEscapedString& query);
    ~CHXAvURLRep();
    int operator==(const CHXAvURLRep&) const;
    int operator!=(const CHXAvURLRep&) const;

    const CHXString& String() const;
    const CHXString& Protocol() const;
    const CHXString& Host() const;
    int Port() const;
    const CHXString& Path() const;
    const CHXAvEscapedString& EscapedPath() const;

    const CHXString& Query() const;
    const CHXAvEscapedString& EscapedQuery() const;

    const CHXAvEscapedString& EscapedFragment() const;

    bool ApplyRelativeURL(const CHXAvURLRep& url);  //implemented in apply_url.cpp

    bool IsAbsoluteURL() const;
    
    bool HasNetPath() const;
    bool HasAbsolutePath() const;
    bool HasQuery() const;
    bool HasFragment() const;

    bool Valid() const; // is the URL valid

    bool ValidProtocol() const; // is the protocol string valid
    bool ValidHostname() const; // is the hostname valid

private:    
    static bool ParseURL(const CHXString& url,
			 CHXString& protocol, CHXString& host,
			 int& port, CHXAvEscapedString& path,
			 CHXAvEscapedString& query,
			 CHXAvEscapedString& fragment,
			 bool& hasNetPath,
			 bool& hasAbsPath,
			 bool& hasQuery,
			 bool& hasFragment);


    static void BuildURL(CHXString& url,
			 const CHXString& protocol, const CHXString& host,
			 int port, const CHXAvEscapedString& path, 
			 const CHXAvEscapedString& query,
			 const CHXAvEscapedString& fragment,
			 bool hasNetPath,
			 bool hasAbsPath,
			 bool hasQuery,
			 bool hasFragment);

    static void CollectChars(const char*& pu, const char* pExtraDelim,
			     CharStack& token);

    CHXString m_String;		// url string
    CHXString m_Protocol;	// protocol
    CHXString m_Host;		// host name
    int m_Port;			// port
    CHXAvEscapedString m_Path;	// path
    CHXAvEscapedString m_Query;    // query
    CHXAvEscapedString m_Fragment; // fragment
    bool m_parseSuccess;        // Did the url string that was passed in parse
                                // ok?
    bool m_hasNetPath;          // Does the URL contain a net path?
    bool m_hasAbsPath;          // Does the URL contain an absolute path?
    bool m_hasQuery;            // Does the URL contain a query string?
    bool m_hasFragment;         // Does the URL contain a fragment string?
};

#endif // _UTIL_URLRep_H

⌨️ 快捷键说明

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