add public wxLog::Log() to avoid ugly casts needed in order to call DoLog() from derived classes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59080 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-02-22 00:46:25 +00:00
parent cf92f48759
commit efce878a2a
4 changed files with 43 additions and 11 deletions

View File

@@ -355,7 +355,8 @@ All:
- Added wxProtocol::SetDefaultTimeout(); the default timeout for both wxHTTP and wxFTP
protocols is 60 seconds.
- Added wxStrnlen() for safe computation of string length.
- Added wxImage::Clear() (troelsk)
- Added wxImage::Clear() (troelsk).
- Added wxLog::Log().
All (Unix):

View File

@@ -243,6 +243,14 @@ public:
// change it otherwise)
static void TimeStamp(wxString *str);
// this method should only be called from derived classes DoLog()
// implementations and shouldn't be called directly, use logging functions
// instead
void Log(wxLogLevel level, const wxString& msg, time_t t)
{
DoLog(level, msg, t);
}
// make dtor virtual for all derived classes
virtual ~wxLog();
@@ -256,7 +264,7 @@ public:
#endif
protected:
// the logging functions that can be overriden
// the logging functions that can be overridden
// default DoLog() prepends the time stamp and a prefix corresponding
// to the message to szString and then passes it to DoLogString()

View File

@@ -793,7 +793,7 @@ public:
Forwards the message at specified level to the @e DoLog() function of the
active log target if there is any, does nothing otherwise.
*/
static void OnLog(wxLogLevel level, const wxString& szString, time_t t);
static void OnLog(wxLogLevel level, const wxString& msg, time_t t);
/**
Remove the @a mask from the list of allowed masks for
@@ -874,6 +874,34 @@ public:
*/
static void Suspend();
/**
Log the given message.
This function should only be called from the DoLog() implementations in
the derived classes (which can't call wxLog::DoLog() directly as it is
protected), it should not be used for logging new messages which can be
only sent to the currently active logger using OnLog() which also
checks if the logging (for this level) is enabled while this method
just directly calls DoLog().
Example of use of this class from wxLogChain:
@code
void wxLogChain::DoLog(wxLogLevel level, const wxString& msg, time_t t)
{
// let the previous logger show it
if ( m_logOld && IsPassingMessages() )
m_logOld->Log(level, msg, t);
// and also send it to the new one
if ( m_logNew && m_logNew != this )
m_logNew->Log(level, msg, t);
}
@endcode
@since 2.9.0
*/
void Log(wxLogLevel level, const wxString& msg, time_t timestamp);
protected:
/**

View File

@@ -915,16 +915,11 @@ void wxLogChain::DoLog(wxLogLevel level, const wxString& szString, time_t t)
{
// let the previous logger show it
if ( m_logOld && IsPassingMessages() )
{
// bogus cast just to access protected DoLog
((wxLogChain *)m_logOld)->DoLog(level, szString, t);
}
m_logOld->Log(level, szString, t);
// and also send it to the new one
if ( m_logNew && m_logNew != this )
{
// as above...
((wxLogChain *)m_logNew)->DoLog(level, szString, t);
}
m_logNew->Log(level, szString, t);
}
#ifdef __VISUALC__