git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			157 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/protocol/protocol.h
 | 
						|
// Purpose:     interface of wxProtocol
 | 
						|
// Author:      wxWidgets team
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Licence:     wxWindows license
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
    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.
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxProtocol
 | 
						|
 | 
						|
    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}
 | 
						|
 | 
						|
    @see wxSocketBase, wxURL
 | 
						|
*/
 | 
						|
class wxProtocol : public wxSocketClient
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Abort the current stream.
 | 
						|
 | 
						|
        @warning
 | 
						|
        It is advised to destroy the input stream instead of aborting the stream
 | 
						|
        this way.
 | 
						|
 | 
						|
        @return Returns @true, if successful, else @false.
 | 
						|
    */
 | 
						|
    virtual bool Abort() = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
        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() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the last occurred error.
 | 
						|
 | 
						|
        @see wxProtocolError
 | 
						|
    */
 | 
						|
    virtual wxProtocolError GetError() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        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.
 | 
						|
        You will be notified when the EOF is reached by an error.
 | 
						|
 | 
						|
        @return Returns the initialized stream. You will have to delete it
 | 
						|
                 yourself once you don't use it anymore. The destructor
 | 
						|
                 closes the network connection.
 | 
						|
 | 
						|
        @see wxInputStream
 | 
						|
    */
 | 
						|
    virtual wxInputStream* GetInputStream(const wxString& path) = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
        Tries to reestablish a previous opened connection (close and renegotiate
 | 
						|
        connection).
 | 
						|
 | 
						|
        @return @true, if the connection is established, else @false.
 | 
						|
    */
 | 
						|
    bool Reconnect();
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the authentication password.
 | 
						|
    */
 | 
						|
    virtual void SetPassword(const wxString& user);
 | 
						|
 | 
						|
    /**
 | 
						|
        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);
 | 
						|
 | 
						|
    /**
 | 
						|
        @name Logging support.
 | 
						|
 | 
						|
        Each wxProtocol object may have the associated logger (by default there
 | 
						|
        is none) which is used to log network requests and responses.
 | 
						|
 | 
						|
        @see wxProtocolLog
 | 
						|
    */
 | 
						|
    //@{
 | 
						|
 | 
						|
    /**
 | 
						|
        Set the logger, deleting the old one and taking ownership of this one.
 | 
						|
 | 
						|
        @param log
 | 
						|
            New logger allocated on the heap or @NULL.
 | 
						|
     */
 | 
						|
    void SetLog(wxProtocolLog *log);
 | 
						|
 | 
						|
    /**
 | 
						|
        Return the current logger, may be @NULL.
 | 
						|
     */
 | 
						|
    wxProtocolLog *GetLog() const { return m_log; }
 | 
						|
 | 
						|
    /**
 | 
						|
        Detach the existing logger without deleting it.
 | 
						|
        
 | 
						|
        The caller is responsible for deleting the returned pointer if it's
 | 
						|
        non-@c NULL.
 | 
						|
     */
 | 
						|
    wxProtocolLog *DetachLog();
 | 
						|
 | 
						|
    /**
 | 
						|
        Call wxProtocolLog::LogRequest() if we have a valid logger or do
 | 
						|
        nothing otherwise.
 | 
						|
     */
 | 
						|
    void LogRequest(const wxString& str);
 | 
						|
 | 
						|
    /**
 | 
						|
        Call wxProtocolLog::LogResponse() if we have a valid logger or do
 | 
						|
        nothing otherwise.
 | 
						|
     */
 | 
						|
    void LogResponse(const wxString& str);
 | 
						|
 | 
						|
    //@}
 | 
						|
};
 | 
						|
 |