--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/testtoolsconn/stat/desktop/source/lib/inc/creporter.h Mon Mar 08 15:04:18 2010 +0800
@@ -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 <windows.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+// 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