Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members
Url.hpp
00001 /*********************************************************************** 00002 * * 00003 * ViTooKi * 00004 * * 00005 * title: Url.hpp * 00006 * * 00007 * * 00008 * * 00009 * ITEC institute of the University of Klagenfurt (Austria) * 00010 * http://www.itec.uni-klu.ac.at * 00011 * * 00012 * * 00013 * For more information visit the ViTooKi homepage: * 00014 * http://ViTooKi.sourceforge.net * 00015 * vitooki-user@lists.sourceforge.net * 00016 * vitooki-devel@lists.sourceforge.net * 00017 * * 00018 * This file is part of ViTooKi, a free video toolkit. * 00019 * ViTooKi is free software; you can redistribute it and/or * 00020 * modify it under the terms of the GNU General Public License * 00021 * as published by the Free Software Foundation; either version 2 * 00022 * of the License, or (at your option) any later version. * 00023 * * 00024 * This program is distributed in the hope that it will be useful, * 00025 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00026 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00027 * GNU General Public License for more details. * 00028 * * 00029 * You should have received a copy of the GNU General Public License * 00030 * along with this program; if not, write to the Free Software * 00031 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, * 00032 * MA 02111-1307, USA. * 00033 * * 00034 ***********************************************************************/ 00035 00036 /*********************************************************************** 00037 * * 00038 * REVISION HISTORY: * 00039 * * 00040 * * 00041 * * 00042 ***********************************************************************/ 00043 00044 #ifndef _MPEG4ITEC_URL_HPP 00045 #define _MPEG4ITEC_URL_HPP 00046 00063 class Url 00064 { 00065 public: 00066 Url(const char* url); 00067 ~Url(); 00068 00069 int getPort() const; 00070 00071 void setPort(int port); 00072 00075 const char* getPath() const; 00076 00077 /* returns the filename of the path without any directory 00078 * e.g.: will return for file://localhost/test.mp4 --> test.mp4 00079 */ 00080 const char* getFileName() const; 00081 00082 const char* getServerName() const; 00083 00085 const char* getProtocol() const; 00086 00089 const char* toString() const; 00090 00093 bool isEqual(const Url* url, bool ignoreServerName=false) const; 00094 00095 bool hasServerName() const; 00096 00097 bool hasPort() const; 00098 00099 bool hasPath() const; 00100 00101 bool hasProtocol() const; 00102 00103 static char* transformUrlToLocalFile(const Url*); 00104 00105 static char* transformPathToLocalFile(const Url*); 00106 00108 static bool convertUrlToSocket(const char* serverName, const int port, 00109 struct sockaddr_in *outSockStruct, int &outSocket); 00110 00112 static void doTest(); 00113 00114 00115 private: 00116 void makeUrl(); 00117 00118 void handleLocalFile(const char* &locFile); 00119 00120 void toLowerString(char* str); 00121 00122 char* serverName; 00123 char* path; 00124 char* protocol; 00125 char* url; 00126 int port; 00127 }; 00128 00129 #endif