diff -r 73b88125830c -r b8d1455fddc0 testconns/statdesktop/desktop/source/lib/inc/creporter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testconns/statdesktop/desktop/source/lib/inc/creporter.h Mon Oct 04 02:58:21 2010 +0300 @@ -0,0 +1,168 @@ +/* +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Header file for functions for the Reporter logging mechanism* +*/ + + + + +#ifndef CPO_REPORT_HPP +#define CPO_REPORT_HPP + +#include +#include +#include + +// Comment out this line for release version ... +// #define RPT_DEBUG_PROG + +#define CPO_GARBAGE_CHAR 0xDB // decimal value ( 3339 ) +#define CPO_TRUE 1 +#define CPO_FALSE 0 +#define CPO_BOOL unsigned int + +#define BITFIELD unsigned long +#define CPO_MAX_FILENAME_LEN 255 + +// status values +#define CPO_CLEAR 0 +#define CPO_CONNECTED 1 // component currently initiated +#define CPO_ACTIVATED 2 // component currently active + + +// Max values for messages +#define RPT_OPEN_MSG_LEN 2048 +#define RPT_MAX_MSG_LEN 256 +#define RPT_MAX_PROGRAM_LEN 15 + +// Max values for message file contents +#define RPT_MAX_LIST_ENTRIES 1000 +#define RPT_MAX_LINE_LEN 200 + +// Bit values for the current state +#define RPT_CLEAR 0 +#define RPT_FILE 4 // Output to file +#define RPT_STDOUT 8 // Output to stdout +#define RPT_STDERR 16 // Output to stderr +#define RPT_DEBUG_ON 32 // Are debug messages processed ? +#define RPT_OUTPUT_MASK ( RPT_FILE | \ + RPT_STDOUT | \ + RPT_STDERR ) + +// Bit values for the prefix mask +#define RPT_MSG_ONLY 1 +#define RPT_MSG_TYPE 2 +#define RPT_APPNAME 4 +#define RPT_DATE 8 +#define RPT_TIME 16 +#define RPT_ALL ( RPT_MSG_TYPE | \ + RPT_APPNAME | \ + RPT_DATE | \ + RPT_TIME ) + +// Different kinds of Reporter messages +#define RPT_DEBUG 'D' +#define RPT_INFO 'I' +#define RPT_WARN 'W' +#define RPT_ERROR 'E' +#define RPT_MSG 'M' +#define RPT_HEADER 'H' +#define RPT_TEXT 'T' + +class Reporter +{ +public: + Reporter (); + ~Reporter (); + + // connection methods + CPO_BOOL init ( const char * appName, + const BITFIELD prefixMask, + const BITFIELD destination ); + CPO_BOOL init ( const char * appName, + const BITFIELD prefixMask, + const BITFIELD destination, + const char * path ); + CPO_BOOL init ( const char * appName, + const BITFIELD prefixMask, + const BITFIELD destination, + const char * path, + const char * file, + const unsigned long ulOpenAttributes = OPEN_ALWAYS); + + CPO_BOOL connected ( void ); + CPO_BOOL active ( void ); + void debugON ( void ); + void debugOFF ( void ); + void sleep ( void ); + void wake ( void ); + void load ( const char * filename ); + void kill ( void ); + + // display methods + void dash ( void ); + void star ( void ); + void blank ( void ); + void header ( char * message, ... ); + void msg ( char * message, ... ); + void debug ( char * message, ... ); + void info ( char * message, ... ); + void warn ( char * message, ... ); + void error ( char * message, ... ); + char * text ( char * message, ... ); + + void header ( int code, ... ); + void msg ( int code, ... ); + void debug ( int code, ... ); + void info ( int code, ... ); + void warn ( int code, ... ); + void error ( int code, ... ); + char * text ( int code, ... ); + +private: + + // variables + va_list pCurrent; // pointer to arg list + BITFIELD state; // current state flags + BITFIELD prefix; // info to prepend to message + HANDLE hFile; // handle to log file + char filename [ CPO_MAX_FILENAME_LEN + 1 ]; // name of log file + char progname [ RPT_MAX_PROGRAM_LEN + 1 ]; // name of calling process + int fileRead; // valid list entries ? + char *messageList [ RPT_MAX_LIST_ENTRIES ]; // list of messages + char buffer [ RPT_OPEN_MSG_LEN ]; // common temp buffer + + // methods + void prepare ( void ); + CPO_BOOL setup ( const char * appName, + const BITFIELD prefixMask, + const unsigned long ulOpenAttributes = OPEN_ALWAYS ); + void actOnCode ( int code, char messType ); + void extractName ( char * file, const char * path, + const int length ); + void generateFilename ( char * validName, + const char * appName ); + int openFile ( unsigned long ulOpenAttributes = OPEN_ALWAYS ); + void closeFile ( void ); + void validateText ( char * text, const int length ); + void addHeaderInfo ( char * prefixInfo ); + void addLogInfo ( char * prefixInfo, const char msgType ); + void buildMessage ( const char * message, + const char messType ); + void writeToStream ( const char * str ); + void readMessageFile ( const char * file ); + void addMessage ( void ); +}; + +#endif