Move SetDefaultTimeout to wxProtocol and set it to 60 seconds for both wxHTTP and wxFTP
Move SetPassword and SetUser implementations to wxProtocol to avoid code redundancy Make const-correct various getters Reorganize wxFTP docs Move wxStringToStringHashMap to hashmap.h and document its existance git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
This is a simple, type-safe, and reasonably efficient hash map class,
|
||||
whose interface is a subset of the interface of STL containers.
|
||||
In particular, the interface is modeled after std::map, and the various,
|
||||
non-standard, std::hash_map.
|
||||
non-standard, std::hash_map (http://www.cppreference.com/wiki/stl/map/start).
|
||||
|
||||
Example:
|
||||
@code
|
||||
@@ -73,11 +73,11 @@
|
||||
@endcode
|
||||
The HASH_T and KEY_EQ_T are the types used for the hashing function and
|
||||
key comparison. wxWidgets provides three predefined hashing functions:
|
||||
wxIntegerHash for integer types ( int, long, short, and their unsigned counterparts ),
|
||||
wxStringHash for strings ( wxString, wxChar*, char* ), and wxPointerHash for
|
||||
@c wxIntegerHash for integer types ( int, long, short, and their unsigned counterparts ),
|
||||
@c wxStringHash for strings ( wxString, wxChar*, char* ), and @c wxPointerHash for
|
||||
any kind of pointer.
|
||||
Similarly three equality predicates: wxIntegerEqual, wxStringEqual,
|
||||
wxPointerEqual are provided.
|
||||
Similarly three equality predicates: @c wxIntegerEqual, @c wxStringEqual,
|
||||
@c wxPointerEqual are provided.
|
||||
Using this you could declare a hash map mapping int values to wxString like this:
|
||||
|
||||
@code
|
||||
@@ -151,6 +151,13 @@
|
||||
it + 3, it1 - it2.
|
||||
|
||||
|
||||
@section hashmap_predef Predefined hashmap types
|
||||
|
||||
wxWidgets defines the following hashmap types:
|
||||
- wxLongToLongHashMap (uses long both for keys and values)
|
||||
- wxStringToStringHashMap (uses wxString both for keys and values)
|
||||
|
||||
|
||||
@library{wxbase}
|
||||
@category{containers}
|
||||
*/
|
||||
|
@@ -20,8 +20,10 @@ enum TransferMode
|
||||
@class wxFTP
|
||||
|
||||
wxFTP can be used to establish a connection to an FTP server and perform all the
|
||||
usual operations. Please consult the RFC 959 for more details about the FTP
|
||||
protocol.
|
||||
usual operations. Please consult the RFC 959 (http://www.w3.org/Protocols/rfc959/)
|
||||
for more details about the FTP protocol.
|
||||
|
||||
wxFTP can thus be used to create a (basic) FTP @b client.
|
||||
|
||||
To use a command which doesn't involve file transfer (i.e. directory oriented
|
||||
commands) you just need to call a corresponding member function or use the
|
||||
@@ -38,14 +40,14 @@ enum TransferMode
|
||||
ftp.SetUser("user");
|
||||
ftp.SetPassword("password");
|
||||
|
||||
if ( !ftp.Connect("ftp.wxwindows.org") )
|
||||
if ( !ftp.Connect("ftp.wxwidgets.org") )
|
||||
{
|
||||
wxLogError("Couldn't connect");
|
||||
return;
|
||||
}
|
||||
|
||||
ftp.ChDir("/pub");
|
||||
wxInputStream *in = ftp.GetInputStream("wxWidgets-4.2.0.tar.gz");
|
||||
ftp.ChDir("/pub/2.8.9);
|
||||
wxInputStream *i = ftp.GetInputStream("wxWidgets-2.8.9.tar.bz2");
|
||||
if ( !in )
|
||||
{
|
||||
wxLogError("Coudln't get file");
|
||||
@@ -67,6 +69,9 @@ enum TransferMode
|
||||
delete [] data;
|
||||
delete in;
|
||||
}
|
||||
|
||||
// gracefully close the connection to the server
|
||||
ftp.Close();
|
||||
@endcode
|
||||
|
||||
To upload a file you would do (assuming the connection to the server was opened
|
||||
@@ -99,6 +104,13 @@ public:
|
||||
*/
|
||||
virtual ~wxFTP();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@name Functions for managing the FTP connection
|
||||
*/
|
||||
//@{
|
||||
|
||||
/**
|
||||
Aborts the download currently in process, returns @true if ok, @false
|
||||
if an error occurred.
|
||||
@@ -106,10 +118,9 @@ public:
|
||||
virtual bool Abort();
|
||||
|
||||
/**
|
||||
Change the current FTP working directory.
|
||||
Returns @true if successful.
|
||||
Gracefully closes the connection with the server.
|
||||
*/
|
||||
bool ChDir(const wxString& dir);
|
||||
virtual bool Close();
|
||||
|
||||
/**
|
||||
Send the specified @a command to the FTP server. @a ret specifies
|
||||
@@ -119,6 +130,96 @@ public:
|
||||
*/
|
||||
bool CheckCommand(const wxString& command, char ret);
|
||||
|
||||
/**
|
||||
Returns the last command result, i.e. the full server reply for the last command.
|
||||
*/
|
||||
const wxString& GetLastResult();
|
||||
|
||||
/**
|
||||
Send the specified @a command to the FTP server and return the first
|
||||
character of the return code.
|
||||
*/
|
||||
char SendCommand(const wxString& command);
|
||||
|
||||
/**
|
||||
Sets the transfer mode to ASCII. It will be used for the next transfer.
|
||||
*/
|
||||
bool SetAscii();
|
||||
|
||||
/**
|
||||
Sets the transfer mode to binary. It will be used for the next transfer.
|
||||
*/
|
||||
bool SetBinary();
|
||||
|
||||
/**
|
||||
If @a pasv is @true, passive connection to the FTP server is used.
|
||||
|
||||
This is the default as it works with practically all firewalls.
|
||||
If the server doesn't support passive mode, you may call this function
|
||||
with @false as argument to use an active connection.
|
||||
*/
|
||||
void SetPassive(bool pasv);
|
||||
|
||||
/**
|
||||
Sets the password to be sent to the FTP server to be allowed to log in.
|
||||
*/
|
||||
virtual void SetPassword(const wxString& passwd);
|
||||
|
||||
/**
|
||||
Sets the transfer mode to the specified one. It will be used for the next
|
||||
transfer.
|
||||
|
||||
If this function is never called, binary transfer mode is used by default.
|
||||
*/
|
||||
bool SetTransferMode(TransferMode mode);
|
||||
|
||||
/**
|
||||
Sets the user name to be sent to the FTP server to be allowed to log in.
|
||||
*/
|
||||
virtual void SetUser(const wxString& user);
|
||||
|
||||
//@}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@name Filesystem commands
|
||||
*/
|
||||
//@{
|
||||
|
||||
/**
|
||||
Change the current FTP working directory.
|
||||
Returns @true if successful.
|
||||
*/
|
||||
bool ChDir(const wxString& dir);
|
||||
|
||||
/**
|
||||
Create the specified directory in the current FTP working directory.
|
||||
Returns @true if successful.
|
||||
*/
|
||||
bool MkDir(const wxString& dir);
|
||||
|
||||
/**
|
||||
Returns the current FTP working directory.
|
||||
*/
|
||||
wxString Pwd();
|
||||
|
||||
/**
|
||||
Rename the specified @a src element to @e dst. Returns @true if successful.
|
||||
*/
|
||||
bool Rename(const wxString& src, const wxString& dst);
|
||||
|
||||
/**
|
||||
Remove the specified directory from the current FTP working directory.
|
||||
Returns @true if successful.
|
||||
*/
|
||||
bool RmDir(const wxString& dir);
|
||||
|
||||
/**
|
||||
Delete the file specified by @e path. Returns @true if successful.
|
||||
*/
|
||||
bool RmFile(const wxString& path);
|
||||
|
||||
/**
|
||||
Returns @true if the given remote file exists, @false otherwise.
|
||||
*/
|
||||
@@ -179,6 +280,14 @@ public:
|
||||
bool GetFilesList(wxArrayString& files,
|
||||
const wxString& wildcard = wxEmptyString);
|
||||
|
||||
//@}
|
||||
|
||||
|
||||
/**
|
||||
@name Download and upload functions
|
||||
*/
|
||||
|
||||
//@{
|
||||
/**
|
||||
Creates a new input stream on the specified path.
|
||||
|
||||
@@ -190,95 +299,22 @@ public:
|
||||
You will be notified when the EOF is reached by an error.
|
||||
|
||||
@return Returns @NULL if an error occurred (it could be a network failure
|
||||
or the fact that the file doesn't exist).
|
||||
or the fact that the file doesn't exist).
|
||||
*/
|
||||
virtual wxInputStream* GetInputStream(const wxString& path);
|
||||
|
||||
/**
|
||||
Returns the last command result, i.e. the full server reply for the last command.
|
||||
*/
|
||||
const wxString& GetLastResult();
|
||||
|
||||
/**
|
||||
Initializes an output stream to the specified @e file.
|
||||
Initializes an output stream to the specified @a file.
|
||||
|
||||
The returned stream has all but the seek functionality of wxStreams.
|
||||
When the user finishes writing data, he has to delete the stream to close it.
|
||||
|
||||
@return An initialized write-only stream.
|
||||
|
||||
@see wxOutputStream
|
||||
Returns @NULL if an error occurred (it could be a network failure
|
||||
or the fact that the file doesn't exist).
|
||||
*/
|
||||
virtual wxOutputStream* GetOutputStream(const wxString& file);
|
||||
|
||||
/**
|
||||
Create the specified directory in the current FTP working directory.
|
||||
Returns @true if successful.
|
||||
*/
|
||||
bool MkDir(const wxString& dir);
|
||||
|
||||
/**
|
||||
Returns the current FTP working directory.
|
||||
*/
|
||||
wxString Pwd();
|
||||
|
||||
/**
|
||||
Rename the specified @a src element to @e dst. Returns @true if successful.
|
||||
*/
|
||||
bool Rename(const wxString& src, const wxString& dst);
|
||||
|
||||
/**
|
||||
Remove the specified directory from the current FTP working directory.
|
||||
Returns @true if successful.
|
||||
*/
|
||||
bool RmDir(const wxString& dir);
|
||||
|
||||
/**
|
||||
Delete the file specified by @e path. Returns @true if successful.
|
||||
*/
|
||||
bool RmFile(const wxString& path);
|
||||
|
||||
/**
|
||||
Send the specified @a command to the FTP server and return the first
|
||||
character of the return code.
|
||||
*/
|
||||
char SendCommand(const wxString& command);
|
||||
|
||||
/**
|
||||
Sets the transfer mode to ASCII. It will be used for the next transfer.
|
||||
*/
|
||||
bool SetAscii();
|
||||
|
||||
/**
|
||||
Sets the transfer mode to binary (IMAGE). It will be used for the next transfer.
|
||||
*/
|
||||
bool SetBinary();
|
||||
|
||||
/**
|
||||
If @a pasv is @true, passive connection to the FTP server is used.
|
||||
|
||||
This is the default as it works with practically all firewalls.
|
||||
If the server doesn't support passive move, you may call this function with
|
||||
@false argument to use active connection.
|
||||
*/
|
||||
void SetPassive(bool pasv);
|
||||
|
||||
/**
|
||||
Sets the password to be sent to the FTP server to be allowed to log in.
|
||||
*/
|
||||
virtual void SetPassword(const wxString& passwd);
|
||||
|
||||
/**
|
||||
Sets the transfer mode to the specified one. It will be used for the next
|
||||
transfer.
|
||||
|
||||
If this function is never called, binary transfer mode is used by default.
|
||||
*/
|
||||
bool SetTransferMode(TransferMode mode);
|
||||
|
||||
/**
|
||||
Sets the user name to be sent to the FTP server to be allowed to log in.
|
||||
*/
|
||||
virtual void SetUser(const wxString& user);
|
||||
//@}
|
||||
};
|
||||
|
||||
|
@@ -11,6 +11,8 @@
|
||||
|
||||
wxHTTP can be used to establish a connection to an HTTP server.
|
||||
|
||||
wxHTTP can thus be used to create a (basic) HTTP @b client.
|
||||
|
||||
@library{wxnet}
|
||||
@category{net}
|
||||
|
||||
@@ -19,6 +21,16 @@
|
||||
class wxHTTP : public wxProtocol
|
||||
{
|
||||
public:
|
||||
/**
|
||||
Default constructor.
|
||||
*/
|
||||
wxHTTP();
|
||||
|
||||
/**
|
||||
Destructor will close the connection if connected.
|
||||
*/
|
||||
virtual ~wxHTTP();
|
||||
|
||||
//@{
|
||||
/**
|
||||
Connect to the HTTP server.
|
||||
@@ -32,7 +44,7 @@ public:
|
||||
//@}
|
||||
|
||||
/**
|
||||
Returns the data attached with a field whose name is specified by @e header.
|
||||
Returns the data attached with a field whose name is specified by @a header.
|
||||
If the field doesn't exist, it will return an empty string and not a @NULL string.
|
||||
|
||||
@note
|
||||
@@ -71,12 +83,12 @@ public:
|
||||
|
||||
Please refer to RFC 2616 for the list of responses.
|
||||
*/
|
||||
int GetResponse();
|
||||
int GetResponse() const;
|
||||
|
||||
/**
|
||||
It sets data of a field to be sent during the next request to the HTTP server.
|
||||
|
||||
The field name is specified by @a header and the content by @e h_data.
|
||||
The field name is specified by @a header and the content by @a h_data.
|
||||
This is a low level function and it assumes that you know what you are doing.
|
||||
*/
|
||||
void SetHeader(const wxString& header, const wxString& h_data);
|
||||
|
@@ -28,6 +28,10 @@ enum wxProtocolError
|
||||
|
||||
Represents a protocol for use with wxURL.
|
||||
|
||||
Note that you may want to change the default time-out for HTTP/FTP connections
|
||||
and network operations (using SetDefaultTimeout()) since the default time-out
|
||||
value is quite long (60 seconds).
|
||||
|
||||
@library{wxnet}
|
||||
@category{net}
|
||||
|
||||
@@ -49,15 +53,16 @@ public:
|
||||
|
||||
/**
|
||||
Returns the type of the content of the last opened stream. It is a mime-type.
|
||||
May be an empty string if the content-type is unknown.
|
||||
*/
|
||||
virtual wxString GetContentType();
|
||||
virtual wxString GetContentType() const;
|
||||
|
||||
/**
|
||||
Returns the last occurred error.
|
||||
|
||||
@see wxProtocolError
|
||||
*/
|
||||
virtual wxProtocolError GetError() = 0;
|
||||
virtual wxProtocolError GetError() const;
|
||||
|
||||
/**
|
||||
Creates a new input stream on the specified path.
|
||||
@@ -85,13 +90,22 @@ public:
|
||||
bool Reconnect();
|
||||
|
||||
/**
|
||||
Sets the authentication password. It is mainly useful when FTP is used.
|
||||
Sets the authentication password.
|
||||
*/
|
||||
virtual void SetPassword(const wxString& user);
|
||||
|
||||
/**
|
||||
Sets the authentication user. It is mainly useful when FTP is used.
|
||||
Sets the authentication user.
|
||||
*/
|
||||
virtual void SetUser(const wxString& user);
|
||||
|
||||
/**
|
||||
Sets a new default timeout for the network operations.
|
||||
|
||||
The default timeout is 60 seconds.
|
||||
|
||||
@see wxSocketBase::SetTimeout
|
||||
*/
|
||||
void SetDefaultTimeout(wxUint32 Value);
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user