diff options
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htword/WordMonitor.h')
-rw-r--r-- | debian/htdig/htdig-3.2.0b6/htword/WordMonitor.h | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/htword/WordMonitor.h b/debian/htdig/htdig-3.2.0b6/htword/WordMonitor.h new file mode 100644 index 00000000..c1ce3c7e --- /dev/null +++ b/debian/htdig/htdig-3.2.0b6/htword/WordMonitor.h @@ -0,0 +1,141 @@ +// +// WordMonitor.h +// +// NAME +// monitoring classes activity. +// +// SYNOPSIS +// +// Only called thru WordContext::Initialize() +// +// DESCRIPTION +// +// The test directory contains a <i>benchmark-report</i> script used to generate +// and archive graphs from the output of <i>WordMonitor</i>. +// +// CONFIGURATION +// +// wordlist_monitor_period <sec> (default 0) +// If the value <b>sec</b> is a positive integer, set a timer to +// print reports every <b>sec</b> seconds. The timer is set using +// the ALRM signal and will fail if the calling application already +// has a handler on that signal. +// +// wordlist_monitor_output <file>[,{rrd,readable] (default stderr) +// Print reports on <b>file</b> instead of the default <b>stderr</b>. +// If <b>type</b> is set to <b>rrd</b> the output is fit for the +// <i>benchmark-report</b> script. Otherwise it a (hardly :-) readable +// string. +// +// +// END +// +// Part of the ht://Dig package <http://www.htdig.org/> +// Copyright (c) 1999-2004 The ht://Dig Group +// For copyright details, see the file COPYING in your distribution +// or the GNU Library General Public License (LGPL) version 2 or later +// <http://www.gnu.org/copyleft/lgpl.html> +// +// $Id: WordMonitor.h,v 1.5 2004/05/28 13:15:28 lha Exp $ +// +#ifndef _WordMonitor_h_ +#define _WordMonitor_h_ + +#include <stdio.h> +#if TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +# if HAVE_SYS_TIME_H +# include <sys/time.h> +# else +# include <time.h> +# endif +#endif + +#define WORD_MONITOR_WRITE 1 +#define WORD_MONITOR_READ 2 +#define WORD_MONITOR_COMPRESS_01 3 +#define WORD_MONITOR_COMPRESS_02 4 +#define WORD_MONITOR_COMPRESS_03 5 +#define WORD_MONITOR_COMPRESS_04 6 +#define WORD_MONITOR_COMPRESS_05 7 +#define WORD_MONITOR_COMPRESS_06 8 +#define WORD_MONITOR_COMPRESS_07 9 +#define WORD_MONITOR_COMPRESS_08 10 +#define WORD_MONITOR_COMPRESS_09 11 +#define WORD_MONITOR_COMPRESS_10 12 +#define WORD_MONITOR_COMPRESS_MORE 13 +#define WORD_MONITOR_PAGE_IBTREE 14 +#define WORD_MONITOR_PAGE_LBTREE 15 +#define WORD_MONITOR_PAGE_UNKNOWN 16 +#define WORD_MONITOR_PUT 17 +#define WORD_MONITOR_GET 18 +#define WORD_MONITOR_GET_NEXT 19 +#define WORD_MONITOR_GET_SET_RANGE 20 +#define WORD_MONITOR_GET_OTHER 21 +#define WORD_MONITOR_LEVEL 22 +#define WORD_MONITOR_PGNO 23 +#define WORD_MONITOR_CMP 24 + +#define WORD_MONITOR_VALUES_SIZE 50 + +#ifdef __cplusplus +extern "C" { +#endif + + void word_monitor_click(); + void word_monitor_add(int index, unsigned int value); + void word_monitor_set(int index, unsigned int value); + unsigned int word_monitor_get(int index); + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus + +#include "Configuration.h" +#include "htString.h" + +class WordMonitor { + public: + WordMonitor(const Configuration &config); + ~WordMonitor(); + + // + // Unique instance handlers + // + static void Initialize(const Configuration& config); + static WordMonitor* Instance() { return instance; } + + void Add(int index, unsigned int value) { values[index] += value; } + void Set(int index, unsigned int value) { values[index] = value; } + unsigned int Get(int index) { return values[index]; } + + const String Report() const; + + void TimerStart(); + void TimerClick(int signal); + void TimerStop(); + + private: + unsigned int values[WORD_MONITOR_VALUES_SIZE]; + unsigned int old_values[WORD_MONITOR_VALUES_SIZE]; + time_t started; + time_t elapsed; + int period; + FILE* output; + int output_style; + static char* values_names[WORD_MONITOR_VALUES_SIZE]; + + // + // Unique instance pointer + // + static WordMonitor* instance; +}; + +#endif /* __cplusplus */ + +#endif /* _WordMonitor_h_ */ + |