| 
    PLearn 0.1 
   | 
 
Forward declare. More...
#include <pl_log.h>


Public Member Functions | |
| PL_LogPluginInterceptor (const set< string > &intercept_lognames, PL_LogPlugin *previous) | |
| virtual PStream & | getStream (PStream::mode_t outmode, const string &module_name, int requested_verbosity) | 
| const deque< string > & | logEntries (const string &logname) const | 
| Return the log entries accumulated so far under the given logname.   | |
| void | clearLog (const string &logname) | 
| Erase all log entries associated with given logname.   | |
Protected Member Functions | |
| void | appendLog (const string &logname, const string &logentry) | 
| Append a new log entry under given logname.   | |
Protected Attributes | |
| set< string > | m_intercept_lognames | 
| List of intercepted lognames.   | |
| PL_LogPlugin * | m_previous | 
| Previous plugin to process log entries that are not intercepted.   | |
| LogMap | m_log_entries | 
| Current log entries for each logname.   | |
| PP< LogInterceptorPStreamBuf > | m_streambuf | 
| Streambuf that's actually tasked with accumulating strings.   | |
| PStream | m_pstream | 
| PStream object that's returned by a call to getStream.   | |
Private Types | |
| typedef PL_LogPlugin | inherited | 
| typedef map< string, deque < string > >  | LogMap | 
Friends | |
| class | LogInterceptorPStreamBuf | 
Forward declare.
Interceptive version PL_LogPlugin. This plugin intercepts the requests made to specific log-names, and appends them to a list of log entries that is kept separately for each intercepted log-name. Requests that are made to other log-names are passed through to a 'chained plugin', for further processing.
typedef PL_LogPlugin PLearn::PL_LogPluginInterceptor::inherited [private] | 
        
typedef map< string, deque<string> > PLearn::PL_LogPluginInterceptor::LogMap [private] | 
        
| PLearn::PL_LogPluginInterceptor::PL_LogPluginInterceptor | ( | const set< string > & | intercept_lognames, | 
| PL_LogPlugin * | previous | ||
| ) | 
Definition at line 139 of file pl_log.cc.
References m_previous, and PLASSERT.
: m_intercept_lognames(intercept_lognames), m_previous(previous), m_streambuf(new LogInterceptorPStreamBuf(this)), m_pstream(m_streambuf) { PLASSERT( m_previous ); }
| void PLearn::PL_LogPluginInterceptor::appendLog | ( | const string & | logname, | 
| const string & | logentry | ||
| ) |  [protected] | 
        
Append a new log entry under given logname.
Definition at line 181 of file pl_log.cc.
References m_log_entries.
{
    m_log_entries[logname].push_back(logentry);
}
| void PLearn::PL_LogPluginInterceptor::clearLog | ( | const string & | logname | ) | 
Erase all log entries associated with given logname.
If logname is empty, ALL entries are cleared, regardless of logname
Definition at line 172 of file pl_log.cc.
References m_log_entries.
{
    if (logname.empty())
        m_log_entries.clear();
    else
        m_log_entries[logname].clear();
}
| PStream & PLearn::PL_LogPluginInterceptor::getStream | ( | PStream::mode_t | outmode, | 
| const string & | module_name, | ||
| int | requested_verbosity | ||
| ) |  [virtual] | 
        
Implements PLearn::PL_LogPlugin.
Definition at line 150 of file pl_log.cc.
References PLearn::PL_LogPlugin::getStream(), m_intercept_lognames, m_previous, m_pstream, m_streambuf, PLASSERT, and PLearn::PStream::setOutMode().
{
    // If the module name is not intercepted, hand to previous handler
    PLASSERT( m_previous && m_streambuf );
    if (m_intercept_lognames.find(module_name) == m_intercept_lognames.end())
        return m_previous->getStream(outmode, module_name, requested_verbosity);
    
    m_pstream.setOutMode(outmode);
    m_streambuf->outputParameters(module_name, requested_verbosity);
    m_streambuf->flush();
    return m_pstream;
}

| const deque< string > & PLearn::PL_LogPluginInterceptor::logEntries | ( | const string & | logname | ) | const | 
Return the log entries accumulated so far under the given logname.
Definition at line 165 of file pl_log.cc.
References m_log_entries.
{
    // May be empty -- don't barf
    return m_log_entries[logname];
}
friend class LogInterceptorPStreamBuf [friend] | 
        
set<string> PLearn::PL_LogPluginInterceptor::m_intercept_lognames [protected] | 
        
LogMap PLearn::PL_LogPluginInterceptor::m_log_entries [mutable, protected] | 
        
Current log entries for each logname.
Definition at line 181 of file pl_log.h.
Referenced by appendLog(), clearLog(), and logEntries().
PL_LogPlugin* PLearn::PL_LogPluginInterceptor::m_previous [protected] | 
        
Previous plugin to process log entries that are not intercepted.
Definition at line 178 of file pl_log.h.
Referenced by getStream(), and PL_LogPluginInterceptor().
PStream PLearn::PL_LogPluginInterceptor::m_pstream [protected] | 
        
PStream object that's returned by a call to getStream.
Definition at line 187 of file pl_log.h.
Referenced by getStream().
Streambuf that's actually tasked with accumulating strings.
Definition at line 184 of file pl_log.h.
Referenced by getStream().
 1.7.4