Retail products


Traffic interception SDK

Control every TCP/IP network connection

  • Route connections via proxy
  • Redirect connections and modify the data
  • Block connections and applications
SSL interception SDK

View SSL in plaintext and modify it

  • View the SSL stream decrypted in plaintext
  • Redirect SSL connection and modify decrypted data
  • Browser shows "SSL lock" without warnings

Documentation


CPeriodicThread Class Reference

#include <PeriodicThread.h>

Inheritance diagram for CPeriodicThread:
Collaboration diagram for CPeriodicThread:

List of all members.


Public Types

enum  _ThreadStage { tsStart, tsBody, tsEnd }
typedef enum
CPeriodicThread::_ThreadStage 
ThreadStage
typedef PeriodicThreadProc LPPeriodicThreadProc
typedef PeriodicThreadProcNoInit LPPeriodicThreadProcNoInit
typedef BOOL(* PeriodicThreadProc )(ThreadStage aStage, LPVOID pParam)
typedef BOOL(* PeriodicThreadProcNoInit )(LPVOID pParam)

Public Member Functions

void SetPriority (CGenericThread::ThreadPriority aPriority)
CGenericThreadGetThread () const
void SetThreadTimeout (DWORD dwTimeout)
BOOL Start (DWORD dwInterval, LPVOID lpData, BOOL bWaitOneInterval=TRUE)
BOOL Stop ()
 CPeriodicThread (PeriodicThreadProc pProc)
 CPeriodicThread (LPPeriodicThreadProcNoInit pProc)
virtual ~CPeriodicThread ()
void SetLocalLog (CErrorLog *pLog)
void WriteError (const std::string &rClass, const std::string &rMethod, const std::string &rError) const
void WriteMessage (const std::string &rClass, const std::string &rMethod, const std::string &rMessage) const

Static Public Member Functions

static std::string GetCurrentDateTime ()
static std::string ErrorCodeToString (DWORD dwErrorCode)
static void RegisterError (DWORD dwErrorCode, const std::string &rDescription)
static void SetLog (CErrorLog *pLog)
static void WriteStaticError (const std::string &rClass, const std::string &rMethod, const std::string &rError)
static std::string FormatData (const std::string &rClass, const std::string &rMethod, const std::string &rMsgOrError, bool bError=true)

Protected Member Functions

const std::string & GetClassName () const
virtual void ReportError (const std::string &rMethod) const
virtual void ReportError (const std::string &rMethod, const std::string &rMessage) const
virtual void ReportError (const std::string &rMethod, const std::string &rMessage, DWORD dwAdditionalData) const
virtual void ReportError (const std::string &rMethod, const std::string &rMessage, const std::string &rAdditionalData) const
virtual void ReportError (const std::string &rMethod, int iErrorCode) const
virtual void ReportError (const std::string &rMethod, const std::string &rMessage, int iErrorCode) const
virtual void ReportErrorOS (const std::string &rMethod, const std::string &rMessage) const
void SetName (const std::string &rName) const

Static Protected Member Functions

static void ReportStaticError (const std::string &rClass, const std::string &rMethod)
static void ReportStaticError (const std::string &rClass, const std::string &rMethod, const std::string &rMessage)
static void ReportStaticError (const std::string &rClass, const std::string &rMethod, const std::string &rMessage, DWORD dwAdditionalData)
static void ReportStaticErrorOS (const std::string &rClass, const std::string &rMethod, const std::string &rMessage)

Detailed Description

Definition at line 50 of file PeriodicThread.h.


Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
tsStart 
tsBody 
tsEnd 

Definition at line 54 of file PeriodicThread.h.

00055     {
00056         tsStart,
00057         tsBody,
00058         tsEnd
00059     } ThreadStage;


Constructor & Destructor Documentation

CPeriodicThread::CPeriodicThread ( PeriodicThreadProc  pProc  ) 

Definition at line 53 of file PeriodicThread.cpp.

00053                                                          : CErrorHandler(),
00054                                                              m_pThread(NULL),
00055                                                              m_pUserProc(pProc),
00056                                                              m_pEnterEvent(NULL),
00057                                                              m_pExitEvent(NULL),
00058                                                              m_dwInterval(0),
00059                                                              m_dwThreadTimeout(20000),
00060                                                              m_bDestructor(FALSE),
00061                                                              m_bAbort(FALSE),
00062                                                              m_pUserProcNoInit(NULL)
00063 {
00064     try
00065     {
00066         //Set our name
00067         SetName(CPeriodicThread_Class);
00068 
00069         //Allocate the thread
00070         m_pThread=COSManager::CreateThread(PeriodicThread);
00071     }
00072     ERROR_HANDLER("CPeriodicThread")
00073 }

CPeriodicThread::CPeriodicThread ( LPPeriodicThreadProcNoInit  pProc  ) 

Definition at line 75 of file PeriodicThread.cpp.

00075                                                                  : CErrorHandler(),
00076                                                                      m_pThread(NULL),
00077                                                                      m_pUserProc(NULL),
00078                                                                      m_pEnterEvent(NULL),
00079                                                                      m_pExitEvent(NULL),
00080                                                                      m_dwInterval(0),
00081                                                                      m_dwThreadTimeout(20000),
00082                                                                      m_bDestructor(FALSE),
00083                                                                      m_bAbort(FALSE),
00084                                                                      m_pUserProcNoInit(pProc)
00085 {
00086     try
00087     {
00088         //Set our name
00089         SetName(CPeriodicThread_Class);
00090 
00091         //Allocate the thread
00092         m_pThread=COSManager::CreateThread(PeriodicThread);
00093     }
00094     ERROR_HANDLER("CPeriodicThread")
00095 }

CPeriodicThread::~CPeriodicThread (  )  [virtual]

Definition at line 97 of file PeriodicThread.cpp.

00098 {
00099     try
00100     {
00101         //Indicate tremination
00102         m_bDestructor=TRUE;
00103 
00104         //Delete our thread
00105         Stop();
00106     }
00107     ERROR_HANDLER("~CPeriodicThread")
00108 }


Member Function Documentation

std::string CErrorHandler::ErrorCodeToString ( DWORD  dwErrorCode  )  [static, inherited]

Definition at line 218 of file ErrorHandler.cpp.

00219 {
00220     try
00221     {
00222         //Try to look it in the errors
00223         if (!CErrorsRepository::GetInstance().GetErrorsMap().empty())
00224         {
00225             //Search
00226             CErrorsRepository::ErrorMap::const_iterator aIterator;
00227             aIterator=CErrorsRepository::GetInstance().GetErrorsMap().find(dwErrorCode);
00228 
00229             //Do we have it
00230             if (aIterator!=CErrorsRepository::GetInstance().GetErrorsMap().end())
00231                 return aIterator->second;
00232         }
00233 
00234         //Get the error string
00235         LPVOID lpMsgBuf;
00236         FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
00237                       FORMAT_MESSAGE_FROM_SYSTEM | 
00238                       FORMAT_MESSAGE_IGNORE_INSERTS,
00239                       NULL,
00240                       dwErrorCode,
00241                       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
00242                       (LPTSTR) &lpMsgBuf,
00243                       0,
00244                       NULL);
00245 
00246         //Save it
00247         std::string sMessage;
00248 
00249         //Do we have the message?
00250         if (lpMsgBuf)
00251         {
00252             //Save it
00253             sMessage=(char*)lpMsgBuf;
00254             
00255             //Release the buffer
00256             LocalFree(lpMsgBuf);
00257         }
00258         else
00259             //Failed to find
00260             sMessage="No error description found!";
00261 
00262         //Done
00263         return sMessage;
00264     }
00265     catch (...)
00266     {
00267         return "Unknown";
00268     }
00269 }

std::string CErrorHandler::FormatData ( const std::string &  rClass,
const std::string &  rMethod,
const std::string &  rMsgOrError,
bool  bError = true 
) [static, inherited]

Definition at line 140 of file ErrorHandler.cpp.

00144 {
00145     //Our message
00146     std::string sMsg;
00147 
00148     //Is it an error?
00149     if (bError)
00150         sMsg="*** Error *** ";
00151     else
00152         sMsg="###  Msg  ### ";
00153 
00154     //Add the data now
00155     sMsg+="in "+rClass;
00156     sMsg+=":"+rMethod;
00157     sMsg+=" - " + rMsgOrError;
00158 
00159     //Done
00160     return sMsg;
00161 }

const std::string & CErrorHandler::GetClassName (  )  const [protected, inherited]

Reimplemented in CSocketThreadManager.

Definition at line 567 of file ErrorHandler.cpp.

00568 {
00569     return m_sClassName;
00570 }

std::string CErrorHandler::GetCurrentDateTime (  )  [static, inherited]

Definition at line 572 of file ErrorHandler.cpp.

00573 {
00574     try
00575     {
00576         //Our string
00577         std::string sDate;
00578 
00579         //Our tmp buf
00580         char cTmp[128];
00581 
00582         //Get date
00583         _strdate(cTmp);
00584         sDate=cTmp;
00585         sDate+=' ';
00586 
00587         //Get time
00588         _strtime(cTmp);
00589         sDate+=cTmp;
00590 
00591         //Done
00592         return sDate;
00593     }
00594     ERROR_HANDLER_STATIC_RETURN(CErrorHandler_Class,"GetCurrentDateTime","")
00595 }

CGenericThread * CPeriodicThread::GetThread (  )  const

Definition at line 398 of file PeriodicThread.cpp.

00399 {
00400     return m_pThread;
00401 }

void CErrorHandler::RegisterError ( DWORD  dwErrorCode,
const std::string &  rDescription 
) [static, inherited]

Definition at line 597 of file ErrorHandler.cpp.

00599 {
00600     try
00601     {
00602         //Add the error
00603         CErrorsRepository::GetInstance().GetErrorsMap().insert(CErrorsRepository::ErrorMap::value_type(dwErrorCode,rDescription));
00604     }
00605     ERROR_HANDLER_STATIC(CErrorHandler_Class,"RegisterError")
00606 }

void CErrorHandler::ReportError ( const std::string &  rMethod,
const std::string &  rMessage,
int  iErrorCode 
) const [protected, virtual, inherited]

Definition at line 271 of file ErrorHandler.cpp.

00274 {
00275     if (!GetLog())
00276         return;
00277 
00278     try
00279     {
00280         //Convert the error code
00281         char aTmp[11];
00282         sprintf(aTmp,"%d",iErrorCode);
00283 
00284         //Get the string for it
00285         std::string sError;
00286         sError=rMessage;
00287         sError+=", and Socket error: ";
00288         sError+=aTmp;
00289         sError+=", ";
00290         sError+=ErrorCodeToString(iErrorCode);
00291 
00292         //Report to the log
00293         WriteError(m_sClassName,
00294                    rMethod,
00295                    sError);
00296     }
00297     ERROR_UNKNOWN("ReportError")
00298 }

void CErrorHandler::ReportError ( const std::string &  rMethod,
int  iErrorCode 
) const [protected, virtual, inherited]

Definition at line 300 of file ErrorHandler.cpp.

00302 {
00303     if (!GetLog())
00304         return;
00305 
00306     try
00307     {
00308         //Convert the error code
00309         char aTmp[11];
00310         sprintf(aTmp,"%d",iErrorCode);
00311 
00312         //Get the string for it
00313         std::string sError;
00314         sError="Socket error: ";
00315         sError+=aTmp;
00316         sError+=", ";
00317         sError+=ErrorCodeToString(iErrorCode);
00318 
00319         //Report to the log
00320         WriteError(m_sClassName,
00321                    rMethod,
00322                    sError);
00323     }
00324     ERROR_UNKNOWN("ReportError")
00325 }

void CErrorHandler::ReportError ( const std::string &  rMethod,
const std::string &  rMessage,
const std::string &  rAdditionalData 
) const [protected, virtual, inherited]

Definition at line 416 of file ErrorHandler.cpp.

00419 {
00420     if (!GetLog())
00421         return;
00422 
00423     try
00424     {
00425         //Create the new message
00426         std::string sNewMessage(rMessage);
00427         sNewMessage+=", Additional data: ";
00428         sNewMessage+=rAdditionalData;
00429 
00430         //Report to the log
00431         WriteError(m_sClassName,
00432                    rMethod,
00433                    sNewMessage);
00434     }
00435     ERROR_UNKNOWN("ReportError")
00436 }

void CErrorHandler::ReportError ( const std::string &  rMethod,
const std::string &  rMessage,
DWORD  dwAdditionalData 
) const [protected, virtual, inherited]

Definition at line 438 of file ErrorHandler.cpp.

00441 {
00442     if (!GetLog())
00443         return;
00444 
00445     try
00446     {
00447         //Convert the number
00448         char aTmp[11];
00449         ltoa(dwAdditionalData,aTmp,10);
00450 
00451         //Create the new message
00452         std::string sNewMessage(rMessage);
00453         sNewMessage+=", Additional data: ";
00454         sNewMessage+=aTmp;
00455 
00456         //Report to the log
00457         WriteError(m_sClassName,
00458                    rMethod,
00459                    sNewMessage);
00460     }
00461     ERROR_UNKNOWN("ReportError")
00462 }

void CErrorHandler::ReportError ( const std::string &  rMethod,
const std::string &  rMessage 
) const [protected, virtual, inherited]

Definition at line 327 of file ErrorHandler.cpp.

00329 {
00330     if (!GetLog())
00331         return;
00332 
00333     try
00334     {
00335         //Report to the log
00336         WriteError(m_sClassName,
00337                    rMethod,
00338                    rMessage);
00339     }
00340     ERROR_UNKNOWN("ReportError")
00341 }

void CErrorHandler::ReportError ( const std::string &  rMethod  )  const [protected, virtual, inherited]

Definition at line 470 of file ErrorHandler.cpp.

00471 {
00472     if (!GetLog())
00473         return;
00474 
00475     try
00476     {
00477         //Get the last error
00478         DWORD dwLastError;
00479         dwLastError=GetLastError();
00480 
00481         //Report the error
00482         WriteError(m_sClassName,
00483                    rMethod,
00484                    ErrorCodeToString(dwLastError));
00485     }
00486     ERROR_UNKNOWN("ReportError")
00487 }

void CErrorHandler::ReportErrorOS ( const std::string &  rMethod,
const std::string &  rMessage 
) const [protected, virtual, inherited]

Definition at line 378 of file ErrorHandler.cpp.

00380 {
00381     if (!GetLog())
00382         return;
00383 
00384     try
00385     {
00386         //Get the last error
00387         DWORD dwLastError;
00388         dwLastError=GetLastError();
00389 
00390         //Format the message
00391         std::string sMessage;
00392         sMessage=rMessage;
00393         sMessage+=", with error code: ";
00394 
00395         //Convert the error code
00396         char aTmp[11];
00397         itoa(dwLastError,aTmp,10);
00398 
00399         //Add it again
00400         sMessage+=aTmp;
00401         sMessage+=" ";
00402         sMessage+=ErrorCodeToString(dwLastError);
00403         
00404         //Get the log
00405         CErrorLog* pLog;
00406         pLog=GetLog();
00407 
00408         //Report to the log
00409         WriteError(m_sClassName,
00410                    rMethod,
00411                    sMessage);
00412     }
00413     ERROR_UNKNOWN("ReportErrorOS")
00414 }

void CErrorHandler::ReportStaticError ( const std::string &  rClass,
const std::string &  rMethod,
const std::string &  rMessage,
DWORD  dwAdditionalData 
) [static, protected, inherited]

Definition at line 540 of file ErrorHandler.cpp.

00544 {
00545     if (!m_pLog)
00546         return;
00547 
00548     try
00549     {
00550         //Convert the number
00551         char aTmp[11];
00552         ltoa(dwAdditionalData,aTmp,10);
00553 
00554         //Create the new message
00555         std::string sNewMessage(rMessage);
00556         sNewMessage+=", Additional data: ";
00557         sNewMessage+=aTmp;
00558 
00559         //Report to the log
00560         WriteStaticError(rClass,
00561                          rMethod,
00562                          sNewMessage);
00563     }
00564     ERROR_UNKNOWN("ReportStaticError")
00565 }

void CErrorHandler::ReportStaticError ( const std::string &  rClass,
const std::string &  rMethod,
const std::string &  rMessage 
) [static, protected, inherited]

Definition at line 523 of file ErrorHandler.cpp.

00526 {
00527     if (!m_pLog)
00528         return;
00529 
00530     try
00531     {
00532         //Report to the log
00533         WriteStaticError(rClass,
00534                          rMethod,
00535                          rMessage);
00536     }
00537     ERROR_UNKNOWN("ReportStaticError")
00538 }

void CErrorHandler::ReportStaticError ( const std::string &  rClass,
const std::string &  rMethod 
) [static, protected, inherited]

Definition at line 503 of file ErrorHandler.cpp.

00505 {
00506     if (!m_pLog)
00507         return;
00508 
00509     try
00510     {
00511         //Get the last error
00512         DWORD dwLastError;
00513         dwLastError=GetLastError();
00514 
00515         //Report the error
00516         WriteStaticError(rClass,
00517                           rMethod,
00518                           ErrorCodeToString(dwLastError));
00519     }
00520     ERROR_UNKNOWN("ReportStaticError")
00521 }

void CErrorHandler::ReportStaticErrorOS ( const std::string &  rClass,
const std::string &  rMethod,
const std::string &  rMessage 
) [static, protected, inherited]

Definition at line 343 of file ErrorHandler.cpp.

00346 {
00347     if (!m_pLog)
00348         return;
00349 
00350     try
00351     {
00352         //Get the last error
00353         DWORD dwLastError;
00354         dwLastError=GetLastError();
00355 
00356         //Format the message
00357         std::string sMessage;
00358         sMessage=rMessage;
00359         sMessage+=", with error code: ";
00360 
00361         //Convert the error code
00362         char aTmp[11];
00363         itoa(dwLastError,aTmp,10);
00364 
00365         //Add it again
00366         sMessage+=aTmp;
00367         sMessage+=" ";
00368         sMessage+=ErrorCodeToString(dwLastError);
00369         
00370         //Report to the log
00371         WriteStaticError(rClass,
00372                          rMethod,
00373                          sMessage);
00374     }
00375     ERROR_UNKNOWN("ReportStaticError")
00376 }

void CErrorHandler::SetLocalLog ( CErrorLog pLog  )  [inherited]

Definition at line 498 of file ErrorHandler.cpp.

00499 {
00500     m_pLocalLog=pLog;
00501 }

void CErrorHandler::SetLog ( CErrorLog pLog  )  [static, inherited]

Definition at line 464 of file ErrorHandler.cpp.

00465 {
00466     //Save the new log
00467     m_pLog=pLog;
00468 }

void CErrorHandler::SetName ( const std::string &  rName  )  const [protected, inherited]

Definition at line 134 of file ErrorHandler.cpp.

00135 {
00136     //Save the class name
00137     m_sClassName=rName;
00138 }

void CPeriodicThread::SetPriority ( CGenericThread::ThreadPriority  aPriority  ) 

Definition at line 403 of file PeriodicThread.cpp.

00404 {
00405     try
00406     {
00407         //Set the priority
00408         m_pThread->SetPriority(aPriority);
00409     }
00410     ERROR_HANDLER("SetPriority")
00411 }

void CPeriodicThread::SetThreadTimeout ( DWORD  dwTimeout  ) 

Definition at line 388 of file PeriodicThread.cpp.

00389 {
00390     try
00391     {
00392         //Save it
00393         m_dwThreadTimeout=dwTimeout;
00394     }
00395     ERROR_HANDLER("SetThreadTimeout")
00396 }

BOOL CPeriodicThread::Start ( DWORD  dwInterval,
LPVOID  lpData,
BOOL  bWaitOneInterval = TRUE 
)

Definition at line 237 of file PeriodicThread.cpp.

00240 {
00241     try
00242     {
00243         //Is the interval legal
00244         if (!dwInterval)
00245         {
00246             //Report it
00247             ReportError("Start","Invalid interval!");
00248 
00249             //Exit
00250             return FALSE;
00251         }
00252 
00253         //Are we running 
00254         if (m_dwInterval ||
00255             m_pEnterEvent ||
00256             m_pExitEvent)
00257         {
00258             //Report it
00259             ReportError("Start","Already running!");
00260 
00261             //Exit
00262             return FALSE;
00263         }
00264 
00265         //We are not aborting
00266         m_bAbort=FALSE;
00267 
00268         //Create all
00269         m_pEnterEvent=COSManager::CreateEvent();
00270         m_pExitEvent=COSManager::CreateEvent();
00271 
00272         //Save the user data
00273         m_lpData=lpData;
00274 
00275         //Save the interval
00276         m_dwInterval=dwInterval;
00277         m_bWaitOneInterval=bWaitOneInterval;
00278 
00279         //Set it to auto delete
00280         m_pThread->SetAutoDelete(TRUE);
00281 
00282         //Run the thread
00283         m_pThread->Start((LPVOID)this);
00284 
00285         //Wait for the event
00286         if (m_pEnterEvent->Wait(m_dwThreadTimeout) ||
00287             m_bAbort)
00288         {
00289             //Report it
00290             if (m_bAbort)
00291                 ReportError("Start","User aborted!");
00292             else
00293                 ReportError("Start","Timeout waiting for thread!");
00294 
00295             //Delete it all
00296             delete m_pThread;
00297             m_pThread=COSManager::CreateThread(PeriodicThread);
00298 
00299             //The events
00300             delete m_pEnterEvent;
00301             m_pEnterEvent=NULL;
00302 
00303             delete m_pExitEvent;
00304             m_pExitEvent=NULL;
00305 
00306             //Exit
00307             return FALSE;
00308         }
00309         else
00310             return TRUE;
00311     }
00312     ERROR_HANDLER_RETURN("Start",FALSE)
00313 }

BOOL CPeriodicThread::Stop (  ) 

Definition at line 315 of file PeriodicThread.cpp.

00316 {
00317     try
00318     {
00319         if (m_bDestructor)
00320             if (!m_pEnterEvent ||
00321                 !m_pExitEvent)
00322             {
00323                 //Just delete the thread
00324                 delete m_pThread;
00325 
00326                 //Exit
00327                 return TRUE;
00328             }
00329             else
00330                 ;
00331         else
00332             //Are we running 
00333             if (!m_pEnterEvent ||
00334                 !m_pExitEvent)
00335             {
00336                 //Report it
00337                 ReportError("Stop","Not running!");
00338 
00339                 //Exit
00340                 return FALSE;
00341             }
00342 
00343         //Are we aborted
00344         if (!m_bAbort)
00345         {
00346             //The thread ID
00347             DWORD dwThreadID;
00348             dwThreadID=m_pThread->GetThreadID();
00349 
00350             //Call the thread
00351             m_pExitEvent->Set();
00352 
00353             //Wait for the thread
00354             if (GetCurrentThreadId()!=dwThreadID &&
00355                 m_pEnterEvent->Wait(m_dwThreadTimeout))
00356             {
00357                 //Report it
00358                 ReportError("Stop","Timeout waiting for thread!");
00359 
00360                 //Delete it by force
00361                 delete m_pThread;
00362             }
00363         }
00364 
00365         //Delete it all
00366         m_pThread=NULL;
00367 
00368         //Do we need to recreate
00369         if (!m_bDestructor)
00370             m_pThread=COSManager::CreateThread(PeriodicThread);
00371 
00372         //The events
00373         delete m_pEnterEvent;
00374         m_pEnterEvent=NULL;
00375 
00376         delete m_pExitEvent;
00377         m_pExitEvent=NULL;
00378 
00379         //Set the interval
00380         m_dwInterval=0;
00381 
00382         //Done
00383         return TRUE;
00384     }
00385     ERROR_HANDLER_RETURN("Stop",FALSE)
00386 }

void CErrorHandler::WriteError ( const std::string &  rClass,
const std::string &  rMethod,
const std::string &  rError 
) const [inherited]

Definition at line 163 of file ErrorHandler.cpp.

00166 {
00167     //Do we have a log?
00168     if (!GetLog())
00169         return;
00170 
00171     //Format the msg
00172     std::string sError;
00173     sError=FormatData(rClass,
00174                       rMethod,
00175                       rError);
00176 
00177     //Write it
00178     GetLog()->WriteError(sError);
00179 }

void CErrorHandler::WriteMessage ( const std::string &  rClass,
const std::string &  rMethod,
const std::string &  rMessage 
) const [inherited]

Definition at line 199 of file ErrorHandler.cpp.

00202 {
00203     //Do we have a log?
00204     if (!GetLog())
00205         return;
00206 
00207     //Format the msg
00208     std::string sMsg;
00209     sMsg=FormatData(rClass,
00210                     rMethod,
00211                     rMessage,
00212                     true);
00213 
00214     //Write it
00215     GetLog()->WriteMessage(sMsg);
00216 }

void CErrorHandler::WriteStaticError ( const std::string &  rClass,
const std::string &  rMethod,
const std::string &  rError 
) [static, inherited]

Definition at line 181 of file ErrorHandler.cpp.

00184 {
00185     //Do we have a log?
00186     if (!m_pLog)
00187         return;
00188 
00189     //Format the msg
00190     std::string sError;
00191     sError=FormatData(rClass,
00192                       rMethod,
00193                       rError);
00194 
00195     //Write it
00196     m_pLog->WriteError(sError);
00197 }


The documentation for this class was generated from the following files: