3 * Copyright (C) 2005-2013 Team XBMC
6 * This Program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
11 * This Program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with XBMC; see the file COPYING. If not, see
18 * <http://www.gnu.org/licenses/>.
22 #include "utils/StdString.h"
23 #include "utils/UrlOptions.h"
26 #undef SetPort // WIN32INCLUDES this is defined as SetPortA in WinSpool.h which is being included _somewhere_
32 CURL(const CStdString
& strURL
);
37 void Parse(const CStdString
& strURL
);
38 void SetFileName(const CStdString
& strFileName
);
39 void SetHostName(const CStdString
& strHostName
);
40 void SetUserName(const CStdString
& strUserName
);
41 void SetPassword(const CStdString
& strPassword
);
42 void SetProtocol(const CStdString
& strProtocol
);
43 void SetOptions(const CStdString
& strOptions
);
44 void SetProtocolOptions(const CStdString
& strOptions
);
45 void SetPort(int port
);
50 const CStdString
& GetHostName() const;
51 const CStdString
& GetDomain() const;
52 const CStdString
& GetUserName() const;
53 const CStdString
& GetPassWord() const;
54 const CStdString
& GetFileName() const;
55 const CStdString
& GetProtocol() const;
56 const CStdString
GetTranslatedProtocol() const;
57 const CStdString
& GetFileType() const;
58 const CStdString
& GetShareName() const;
59 const CStdString
& GetOptions() const;
60 const CStdString
& GetProtocolOptions() const;
61 const CStdString
GetFileNameWithoutPath() const; /* return the filename excluding path */
63 char GetDirectorySeparator() const;
65 CStdString
Get() const;
66 std::string
GetWithoutUserDetails(bool redact
= false) const;
67 CStdString
GetWithoutFilename() const;
68 std::string
GetRedacted() const;
69 static std::string
GetRedacted(const std::string
& path
);
71 bool IsLocalHost() const;
72 static bool IsFileOnly(const CStdString
&url
); ///< return true if there are no directories in the url.
73 static bool IsFullPath(const CStdString
&url
); ///< return true if the url includes the full path
74 static std::string
Decode(const std::string
& strURLData
);
75 static std::string
Encode(const std::string
& strURLData
);
76 static CStdString
TranslateProtocol(const CStdString
& prot
);
78 void GetOptions(std::map
<CStdString
, CStdString
> &options
) const;
79 bool HasOption(const CStdString
&key
) const;
80 bool GetOption(const CStdString
&key
, CStdString
&value
) const;
81 CStdString
GetOption(const CStdString
&key
) const;
82 void SetOption(const CStdString
&key
, const CStdString
&value
);
83 void RemoveOption(const CStdString
&key
);
85 void GetProtocolOptions(std::map
<CStdString
, CStdString
> &options
) const;
86 bool HasProtocolOption(const CStdString
&key
) const;
87 bool GetProtocolOption(const CStdString
&key
, CStdString
&value
) const;
88 CStdString
GetProtocolOption(const CStdString
&key
) const;
89 void SetProtocolOption(const CStdString
&key
, const CStdString
&value
);
90 void RemoveProtocolOption(const CStdString
&key
);
94 CStdString m_strHostName
;
95 CStdString m_strShareName
;
96 CStdString m_strDomain
;
97 CStdString m_strUserName
;
98 CStdString m_strPassword
;
99 CStdString m_strFileName
;
100 CStdString m_strProtocol
;
101 CStdString m_strFileType
;
102 CStdString m_strOptions
;
103 CStdString m_strProtocolOptions
;
104 CUrlOptions m_options
;
105 CUrlOptions m_protocolOptions
;