]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/protocol/protocol.h
avoid GTK+ prefixes for our tree entry code, it is not part of GTK+, should have...
[wxWidgets.git] / interface / wx / protocol / protocol.h
index d0edb4f9302fdada773b65ff687cd18effdd7aa3..c4cc334d14ec980126f9bb83bd26f91a07289b59 100644 (file)
@@ -1,9 +1,9 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        protocol/protocol.h
+// Name:        wx/protocol/protocol.h
 // Purpose:     interface of wxProtocol
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
@@ -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}
 
@@ -45,19 +49,20 @@ public:
 
         @return Returns @true, if successful, else @false.
     */
-    bool Abort();
+    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();
+    virtual wxString GetContentType() const;
 
     /**
         Returns the last occurred error.
 
         @see wxProtocolError
     */
-    wxProtocolError GetError();
+    virtual wxProtocolError GetError() const;
 
     /**
         Creates a new input stream on the specified path.
@@ -74,7 +79,7 @@ public:
 
         @see wxInputStream
     */
-    wxInputStream* GetInputStream(const wxString& path);
+    virtual wxInputStream* GetInputStream(const wxString& path) = 0;
 
     /**
         Tries to reestablish a previous opened connection (close and renegotiate
@@ -85,13 +90,67 @@ 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);
+
+    /**
+        @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);
+
+    //@}
 };