123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- #include "nsISupports.idl"
- /**
- * nsIURLParser specifies the interface to an URL parser that attempts to
- * follow the definitions of RFC 2396.
- */
- [scriptable, uuid(78c5d19f-f5d2-4732-8d3d-d5a7d7133bc0)]
- interface nsIURLParser : nsISupports
- {
- /**
- * The string to parse in the following methods may be given as a null
- * terminated string, in which case the length argument should be -1.
- *
- * Out parameters of the following methods are all optional (ie. the caller
- * may pass-in a NULL value if the corresponding results are not needed).
- * Signed out parameters may hold a value of -1 if the corresponding result
- * is not part of the string being parsed.
- *
- * The parsing routines attempt to be as forgiving as possible.
- */
- /**
- * ParseSpec breaks the URL string up into its 3 major components: a scheme,
- * an authority section (hostname, etc.), and a path.
- *
- * spec = <scheme>://<authority><path>
- */
- void parseURL (in string spec, in long specLen,
- out unsigned long schemePos, out long schemeLen,
- out unsigned long authorityPos, out long authorityLen,
- out unsigned long pathPos, out long pathLen);
- /**
- * ParseAuthority breaks the authority string up into its 4 components:
- * username, password, hostname, and hostport.
- *
- * auth = <username>:<password>@<hostname>:<port>
- */
- void parseAuthority (in string authority, in long authorityLen,
- out unsigned long usernamePos, out long usernameLen,
- out unsigned long passwordPos, out long passwordLen,
- out unsigned long hostnamePos, out long hostnameLen,
- out long port);
- /**
- * userinfo = <username>:<password>
- */
- void parseUserInfo (in string userinfo, in long userinfoLen,
- out unsigned long usernamePos, out long usernameLen,
- out unsigned long passwordPos, out long passwordLen);
- /**
- * serverinfo = <hostname>:<port>
- */
- void parseServerInfo (in string serverinfo, in long serverinfoLen,
- out unsigned long hostnamePos, out long hostnameLen,
- out long port);
- /**
- * ParsePath breaks the path string up into its 3 major components: a file path,
- * a query string, and a reference string.
- *
- * path = <filepath>?<query>#<ref>
- */
- void parsePath (in string path, in long pathLen,
- out unsigned long filepathPos, out long filepathLen,
- out unsigned long queryPos, out long queryLen,
- out unsigned long refPos, out long refLen);
- /**
- * ParseFilePath breaks the file path string up into: the directory portion,
- * file base name, and file extension.
- *
- * filepath = <directory><basename>.<extension>
- */
- void parseFilePath (in string filepath, in long filepathLen,
- out unsigned long directoryPos, out long directoryLen,
- out unsigned long basenamePos, out long basenameLen,
- out unsigned long extensionPos, out long extensionLen);
- /**
- * filename = <basename>.<extension>
- */
- void parseFileName (in string filename, in long filenameLen,
- out unsigned long basenamePos, out long basenameLen,
- out unsigned long extensionPos, out long extensionLen);
- };
- %{C++
- // url parser key for use with the category manager
- // mapping from scheme to url parser.
- #define NS_IURLPARSER_KEY "@mozilla.org/urlparser;1"
- %}
|