added wxProtocolLog class for logging network requests/responses (closes #7464)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
61
interface/wx/protocol/log.h
Normal file
61
interface/wx/protocol/log.h
Normal file
@@ -0,0 +1,61 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/protocol/log.h
|
||||
// Purpose: interface of wxProtocolLog
|
||||
// Author: Vadim Zeitlin
|
||||
// Created: 2009-03-06
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
Class allowing to log network operations performed by wxProtocol.
|
||||
|
||||
@library{wxnet}
|
||||
@category{net}
|
||||
|
||||
@see wxProtocol
|
||||
*/
|
||||
class wxProtocolLog
|
||||
{
|
||||
public:
|
||||
/**
|
||||
Create object doing the logging using wxLogTrace() with the specified
|
||||
trace mask.
|
||||
|
||||
If you override DoLogString() in your class the @a traceMask may be
|
||||
left empty but it must have a valid value if you rely on the default
|
||||
DoLogString() implementation.
|
||||
*/
|
||||
wxProtocolLog(const wxString& traceMask);
|
||||
|
||||
/**
|
||||
Called by wxProtocol-derived objects to log strings sent to the server.
|
||||
|
||||
Default implementation prepends a client-to-server marker to @a str and
|
||||
calls DoLogString().
|
||||
*/
|
||||
virtual void LogRequest(const wxString& str);
|
||||
|
||||
/**
|
||||
Called by wxProtocol-derived objects to log strings received from the
|
||||
server.
|
||||
|
||||
Default implementation prepends a server-to-client marker to @a str and
|
||||
calls DoLogString().
|
||||
*/
|
||||
virtual void LogResponse(const wxString& str);
|
||||
|
||||
protected:
|
||||
/**
|
||||
Log the given string.
|
||||
|
||||
This function is called from LogRequest() and LogResponse() and by
|
||||
default uses wxLogTrace() with the trace mask specified in the
|
||||
constructor but can be overridden to do something different by the
|
||||
derived classes.
|
||||
*/
|
||||
virtual void DoLogString(const wxString& str);
|
||||
};
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: protocol/protocol.h
|
||||
// Name: wx/protocol/protocol.h
|
||||
// Purpose: interface of wxProtocol
|
||||
// Author: wxWidgets team
|
||||
// RCS-ID: $Id$
|
||||
@@ -107,5 +107,50 @@ public:
|
||||
@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);
|
||||
|
||||
//@}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user