2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: protocol/protocol.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxProtocol
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2008-04-10 17:31:05 -04:00
|
|
|
/**
|
|
|
|
Error values returned by wxProtocol.
|
|
|
|
*/
|
|
|
|
enum wxProtocolError
|
|
|
|
{
|
|
|
|
wxPROTO_NOERR = 0, //!< No error.
|
|
|
|
wxPROTO_NETERR, //!< A generic network error occurred.
|
|
|
|
wxPROTO_PROTERR, //!< An error occurred during negotiation.
|
|
|
|
wxPROTO_CONNERR, //!< The client failed to connect the server.
|
|
|
|
wxPROTO_INVVAL, //!< Invalid value.
|
|
|
|
wxPROTO_NOHNDLR, //!< Not currently used.
|
|
|
|
wxPROTO_NOFILE, //!< The remote file doesn't exist.
|
|
|
|
wxPROTO_ABRT, //!< Last action aborted.
|
|
|
|
wxPROTO_RCNCT, //!< An error occurred during reconnection.
|
|
|
|
wxPROTO_STREAMING //!< Someone tried to send a command during a transfer.
|
|
|
|
};
|
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
/**
|
|
|
|
@class wxProtocol
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-04-10 17:31:05 -04:00
|
|
|
Represents a protocol for use with wxURL.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2009-01-16 10:08:13 -05:00
|
|
|
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).
|
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxnet}
|
2008-04-10 17:31:05 -04:00
|
|
|
@category{net}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-10 11:24:38 -04:00
|
|
|
@see wxSocketBase, wxURL
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxProtocol : public wxSocketClient
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Abort the current stream.
|
2008-04-10 17:31:05 -04:00
|
|
|
|
|
|
|
@warning
|
|
|
|
It is advised to destroy the input stream instead of aborting the stream
|
|
|
|
this way.
|
|
|
|
|
2008-05-10 21:38:53 -04:00
|
|
|
@return Returns @true, if successful, else @false.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-10-13 09:24:43 -04:00
|
|
|
virtual bool Abort() = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the type of the content of the last opened stream. It is a mime-type.
|
2009-01-16 10:08:13 -05:00
|
|
|
May be an empty string if the content-type is unknown.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2009-01-16 10:08:13 -05:00
|
|
|
virtual wxString GetContentType() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the last occurred error.
|
2008-04-10 17:31:05 -04:00
|
|
|
|
|
|
|
@see wxProtocolError
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2009-01-16 10:08:13 -05:00
|
|
|
virtual wxProtocolError GetError() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-04-10 17:31:05 -04:00
|
|
|
Creates a new input stream on the specified path.
|
|
|
|
|
|
|
|
You can use all but seek() functionality of wxStream.
|
|
|
|
Seek() isn't available on all streams. For example, HTTP or FTP streams
|
|
|
|
don't deal with it. Other functions like StreamSize() and Tell() aren't
|
|
|
|
available for the moment for this sort of stream.
|
2008-03-08 08:52:38 -05:00
|
|
|
You will be notified when the EOF is reached by an error.
|
2008-04-10 17:31:05 -04:00
|
|
|
|
2008-05-10 21:38:53 -04:00
|
|
|
@return Returns the initialized stream. You will have to delete it
|
2008-03-09 08:33:59 -04:00
|
|
|
yourself once you don't use it anymore. The destructor
|
|
|
|
closes the network connection.
|
2008-04-10 17:31:05 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see wxInputStream
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-10-13 09:24:43 -04:00
|
|
|
virtual wxInputStream* GetInputStream(const wxString& path) = 0;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Tries to reestablish a previous opened connection (close and renegotiate
|
|
|
|
connection).
|
2008-04-10 17:31:05 -04:00
|
|
|
|
2008-05-10 21:38:53 -04:00
|
|
|
@return @true, if the connection is established, else @false.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
bool Reconnect();
|
|
|
|
|
|
|
|
/**
|
2009-01-16 10:08:13 -05:00
|
|
|
Sets the authentication password.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
virtual void SetPassword(const wxString& user);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2009-01-16 10:08:13 -05:00
|
|
|
Sets the authentication user.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
virtual void SetUser(const wxString& user);
|
2009-01-16 10:08:13 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Sets a new default timeout for the network operations.
|
|
|
|
|
|
|
|
The default timeout is 60 seconds.
|
|
|
|
|
|
|
|
@see wxSocketBase::SetTimeout
|
|
|
|
*/
|
|
|
|
void SetDefaultTimeout(wxUint32 Value);
|
2008-03-08 08:52:38 -05:00
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|