diff options
| author | Vincent Richard <[email protected]> | 2004-12-26 20:23:29 +0000 |
|---|---|---|
| committer | Vincent Richard <[email protected]> | 2004-12-26 20:23:29 +0000 |
| commit | 4ce991d3b1bd97fbb896d17fb8f36f6650429a22 (patch) | |
| tree | 2db6e072b862dd809d4acd8c571a1b859fdcb484 /src/messaging/url.hpp | |
| parent | Allow creating a service from an URL. (diff) | |
| download | vmime-4ce991d3b1bd97fbb896d17fb8f36f6650429a22.tar.gz vmime-4ce991d3b1bd97fbb896d17fb8f36f6650429a22.zip | |
Moved all header files to 'vmime/' directory.
Diffstat (limited to 'src/messaging/url.hpp')
| -rw-r--r-- | src/messaging/url.hpp | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/src/messaging/url.hpp b/src/messaging/url.hpp deleted file mode 100644 index 9440e61d..00000000 --- a/src/messaging/url.hpp +++ /dev/null @@ -1,188 +0,0 @@ -// -// VMime library (http://vmime.sourceforge.net) -// Copyright (C) 2002-2004 Vincent Richard <[email protected]> -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -// - -#ifndef VMIME_MESSAGING_URL_HPP_INCLUDED -#define VMIME_MESSAGING_URL_HPP_INCLUDED - - -#include "types.hpp" -#include "base.hpp" - - -namespace vmime { -namespace messaging { - - -/** This class represents a Uniform Resource Locator (a pointer - * to a "resource" on the World Wide Web). - */ - -class url -{ -public: - - /** Means "port not specified" (use default port). */ - static const port_t UNSPECIFIED_PORT = static_cast <port_t>(-1); - - /** Standard name for FILE protocol (local file-system). */ - static const string PROTOCOL_FILE; - - /** Standard name for HTTP protocol. */ - static const string PROTOCOL_HTTP; - - /** Standard name for FTP protocol. */ - static const string PROTOCOL_FTP; - - - /** Construct an URL from a string (parse the URL components). - * - * @param s full URL string (eg. http://vmime.sourceforge.net:80/download.html - */ - url(const string& s); - - /** Construct an URL from another URL object. - * - * @param u other URL object - */ - url(const url& u); - - /** Construct an URL from the components. - * - * @param protocol protocol (eg. "http", "ftp"...) - * @param host host name (eg. "vmime.sourceforge.net", "123.45.67.89") - * @param port optional port number (eg. 80, 110 or UNSPECIFIED_PORT to mean "default") - * @param path optional full path (eg. "download.html") - * @param username optional user name - * @param password optional user password - */ - url(const string& protocol, const string& host, const port_t port = UNSPECIFIED_PORT, - const string& path = "", const string& username = "", const string& password = ""); - - - /** Return the protocol of the URL (eg: "http"). - * - * @return protocol of the URL - */ - const string& getProtocol() const; - - /** Set the protocol of the URL. - * - * @param protocol new protocol (eg: "http") - */ - void setProtocol(const string& protocol); - - /** Return the username specified in the URL - * or empty if not specified. - * - * @return user name - */ - const string& getUsername() const; - - /** Set the username of the URL. - * - * @param username user name - */ - void setUsername(const string& username); - - /** Return the password specified in the URL - * or empty if not specified. - * - * @return user password - */ - const string& getPassword() const; - - /** Set the password of the URL. - * - * @param password user password - */ - void setPassword(const string& password); - - /** Return the host name of the URL (server name or IP address). - * - * @return host name - */ - const string& getHost() const; - - /** Set the host name of the URL. - * - * @param host server name or IP address - */ - void setHost(const string& host); - - /** Return the port of the URL, or url::UNSPECIFIED_PORT if - * the default port if used. - * - * @return server port - */ - const port_t getPort() const; - - /** Set the port of the URL. - * - * @param port server port or url::UNSPECIFIED_PORT to - * use the default port of the protocol - */ - void setPort(const port_t port); - - /** Return the path portion of the URL, - * or empty if not specified. - * - * @return path - */ - const string& getPath() const; - - /** Set the part portion of the URL. - * - * @param path path - */ - void setPath(const string& path); - - - /** Build a string URL from this object. - */ - operator string() const; - - url& operator=(const url& u); - url& operator=(const string& s); - -private: - - const string build() const; - void parse(const string& str); - - // Format: - // "protocol://[username[:password]@]host[:port][/path]" - - string m_protocol; - - string m_username; - string m_password; - - string m_host; - - port_t m_port; - - string m_path; -}; - - -} // messaging -} // vmime - - -#endif // VMIME_MESSAGING_URL_HPP_INCLUDED |
