* *
* Authors: Matthias Richter <Matthias.Richter@ift.uib.no> *
* Timm Steinbeck <timm@kip.uni-heidelberg.de> *
- * Artur Szostak <artursz@iafrica.com> *
* for The ALICE Off-line Project. *
* *
* Permission to use, copy, modify and distribute this software and its *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-///////////////////////////////////////////////////////////////////////////////
-// //
-// HLT logging tools //
-// //
-///////////////////////////////////////////////////////////////////////////////
+/** @file AliHLTLogging.cxx
+ @author Matthias Richter, Timm Steinbeck
+ @date
+ @brief Implementation of HLT logging primitives.
+*/
-#if __GNUC__== 3
+#if __GNUC__>= 3
using namespace std;
#endif
-#include <errno.h>
-//#include <string.h>
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStdIncludes.h"
#include "AliHLTLogging.h"
-#include <stdarg.h>
-#include <string.h>
-ClassImp(AliHLTLogging)
-
-char AliHLTLogging::fLogBuffer[LOG_BUFFER_SIZE]="";
-char AliHLTLogging::fOriginBuffer[LOG_BUFFER_SIZE]="";
+// global logging buffer
+#define LOG_BUFFER_SIZE 100
+char gAliHLTLoggingBuffer[LOG_BUFFER_SIZE]="";
+char gAliHLTLoggingOriginBuffer[LOG_BUFFER_SIZE]="";
-AliHLTComponent_LogSeverity AliHLTLogging::fGlobalLogFilter=kHLTLogAll;
-AliHLTfctLogging AliHLTLogging::fLoggingFunc=NULL;
+/** ROOT macro for the implementation of ROOT specific class methods */
+ClassImp(AliHLTLogging)
AliHLTLogging::AliHLTLogging()
+ :
+ //fLocalLogFilter(kHLTLogDefault),
+ fLocalLogFilter(kHLTLogAll),
+ fpDefaultKeyword(NULL),
+ fpCurrentKeyword(NULL)
+{
+}
+
+AliHLTLogging::AliHLTLogging(const AliHLTLogging&)
+ :
+ fLocalLogFilter(kHLTLogAll),
+ fpDefaultKeyword(NULL),
+ fpCurrentKeyword(NULL)
{
- fpDefaultKeyword=NULL;
- fpCurrentKeyword=NULL;
- //fLocalLogFilter=kHLTLogDefault;
- fLocalLogFilter=kHLTLogAll;
+ HLTFatal("copy constructor untested");
}
+AliHLTLogging& AliHLTLogging::operator=(const AliHLTLogging&)
+{
+ HLTFatal("assignment operator untested");
+ return *this;
+}
+
+AliHLTComponent_LogSeverity AliHLTLogging::fGlobalLogFilter=kHLTLogAll;
+AliHLTfctLogging AliHLTLogging::fLoggingFunc=NULL;
AliHLTLogging::~AliHLTLogging()
{
int AliHLTLogging::Message(void *param, AliHLTComponent_LogSeverity severity, const char* origin, const char* keyword, const char* message) {
int iResult=0;
+ if (param==NULL) {
+ // this is currently just to get rid of the warning "unused parameter"
+ }
const char* strSeverity="";
switch (severity) {
case kHLTLogBenchmark:
const char* AliHLTLogging::BuildLogString(const char *format, va_list ap) {
int tgtLen=0;
int iBufferSize=LOG_BUFFER_SIZE;
- char* tgtBuffer=fLogBuffer;
+ char* tgtBuffer=gAliHLTLoggingBuffer;
tgtBuffer[tgtLen]=0;
#if (defined LOG_PREFIX)
*tgtBuffer=0; // terminate the buffer
}
}
- return fLogBuffer;
+ return gAliHLTLoggingBuffer;
}
int AliHLTLogging::Logging(AliHLTComponent_LogSeverity severity, const char* origin, const char* keyword, const char* format, ... ) {
return iResult;
}
-int AliHLTLogging::LoggingVarargs( AliHLTComponent_LogSeverity severity, const char* origin_class, const char* origin_func, ... )
+int AliHLTLogging::LoggingVarargs( AliHLTComponent_LogSeverity severity, const char* origin_class, const char* origin_func, ... ) const
{
int iResult=CheckFilter(severity);
if (iResult>0) {
int iMaxSize=LOG_BUFFER_SIZE-1;
int iPos=0;
const char* separator="";
- fOriginBuffer[iPos]=0;
+ gAliHLTLoggingOriginBuffer[iPos]=0;
if (origin_class) {
if ((int)strlen(origin_class)<iMaxSize-iPos) {
- strcpy(&fOriginBuffer[iPos], origin_class);
+ strcpy(&gAliHLTLoggingOriginBuffer[iPos], origin_class);
iPos+=strlen(origin_class);
separator="::";
}
}
if (origin_func) {
if ((int)strlen(origin_func)+(int)strlen(separator)<iMaxSize-iPos) {
- strcpy(&fOriginBuffer[iPos], separator);
+ strcpy(&gAliHLTLoggingOriginBuffer[iPos], separator);
iPos+=strlen(separator);
- strcpy(&fOriginBuffer[iPos], origin_func);
+ strcpy(&gAliHLTLoggingOriginBuffer[iPos], origin_func);
iPos+=strlen(origin_func);
}
}
message=AliHLTLogging::BuildLogString(format, args);
}
if (fLoggingFunc) {
- iResult=(*fLoggingFunc)(NULL/*fParam*/, severity, fOriginBuffer, GetKeyword(), message);
+ iResult=(*fLoggingFunc)(NULL/*fParam*/, severity, gAliHLTLoggingOriginBuffer, GetKeyword(), message);
} else {
- iResult=Message(NULL/*fParam*/, severity, fOriginBuffer, GetKeyword(), message);
+ iResult=Message(NULL/*fParam*/, severity, gAliHLTLoggingOriginBuffer, GetKeyword(), message);
}
va_end(args);
}
return iResult;
}
-int AliHLTLogging::CheckFilter(AliHLTComponent_LogSeverity severity)
+int AliHLTLogging::CheckFilter(AliHLTComponent_LogSeverity severity) const
{
int iResult=severity==kHLTLogNone || (severity&fGlobalLogFilter)>0 && (severity&fLocalLogFilter)>0;
return iResult;