Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

Url.hpp

00001 /* -*- C++ -*- */
00002 
00003 /*
00004  * The Apache Software License, Version 1.1
00005  *
00006  *
00007  * Copyright (c) 2002 The Apache Software Foundation.  All rights
00008  * reserved.
00009  *
00010  * Redistribution and use in source and binary forms, with or without
00011  * modification, are permitted provided that the following conditions
00012  * are met:
00013  *
00014  * 1. Redistributions of source code must retain the above copyright
00015  *    notice, this list of conditions and the following disclaimer.
00016  *
00017  * 2. Redistributions in binary form must reproduce the above copyright
00018  *    notice, this list of conditions and the following disclaimer in
00019  *    the documentation and/or other materials provided with the
00020  *    distribution.
00021  *
00022  * 3. The end-user documentation included with the redistribution,
00023  *    if any, must include the following acknowledgment:
00024  *       "This product includes software developed by the
00025  *        Apache Software Foundation (http://www.apache.org/)."
00026  *    Alternately, this acknowledgment may appear in the software itself,
00027  *    if and wherever such third-party acknowledgments normally appear.
00028  *
00029  * 4. The names "SOAP" and "Apache Software Foundation" must
00030  *    not be used to endorse or promote products derived from this
00031  *    software without prior written permission. For written
00032  *    permission, please contact apache@apache.org.
00033  *
00034  * 5. Products derived from this software may not be called "Apache",
00035  *    nor may "Apache" appear in their name, without prior written
00036  *    permission of the Apache Software Foundation.
00037  *
00038  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
00039  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00040  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00041  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
00042  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00043  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00044  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
00045  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00046  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00047  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
00048  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00049  * SUCH DAMAGE.
00050  * ====================================================================
00051  *
00052  * This software consists of voluntary contributions made by many
00053  * individuals on behalf of the Apache Software Foundation.  For more
00054  * information on the Apache Software Foundation, please see
00055  * <http://www.apache.org/>.
00056  */
00057 
00058 /*
00059  *
00060  *
00061  * @author Lilantha Darshana (lilantha@virtusa.com)
00062  *
00063  */
00064 
00065 
00066 #if !defined(_AXIS_URL_HPP)
00067 #define _AXIS_URL_HPP
00068 
00069 #include <string>
00070 
00071 // Welknown ports
00072 const unsigned short HTTP_PORT  = 80;   
00073 const unsigned short HTTPS_PORT = 443;
00074 const unsigned short FTP_PORT   = 21;
00075 
00076 
00096 class Url  
00097 {
00098 public:
00099 
00100         enum Protocol { http, https, ftp, file, unknown}; // for our purpose currently we need
00101                                                                                                           // http, https only. This is provided
00102                                                                                                           // To make extensible to
00103                                                                                                           // support other transports for RPC
00104                                                                                                           // but file????, yes we may require 
00105                                                                                                           // pipes; with web-service????
00106 
00107 public:
00108         Url();
00109         Url(std::string url);
00110         ~Url();
00111 
00112         void SetProtocol(std::string prot);
00113         void SetProtocol(Protocol prot){m_Protocol = prot;}
00114         void SetHostName(std::string host){m_Host= host;}
00115         void SetResource(std::string path){m_Path = path;}
00116         void SetPort(unsigned short port){m_Port = port;}
00117 
00118         Protocol        GetProtocol(){return m_Protocol;}
00119         std::string GetHostName(){return m_Host;}
00120         std::string GetResource(){return m_Path;}
00121 
00122         unsigned short GetPort(){return m_Port;}
00123 
00124         // other functions are not supported yet
00125 
00126 private:
00127 
00128         void ParseURL(std::string& url);
00129         
00130         Protocol                m_Protocol;
00131         std::string             m_Host;
00132         unsigned short  m_Port;
00133         std::string             m_Path;
00134         std::string             m_Query;
00135 
00136     std::string m_Password;
00137     std::string m_User;
00138     std::string m_URL;
00139 };
00140 
00141 #endif // _AXIS_URL_HPP
00142 
00143 

Generated on Fri Apr 9 12:21:29 2004 for axiscpp by doxygen1.2.18