histogram.h

ソースコードを見る。

マクロ定義

#define TNUM_HIST   10

関数

void init_hist (ID histid, uint_t maxval, uint_t *hist)
void begin_measure (ID histid)
void end_measure (ID histid)
void print_hist (ID histid)


マクロ定義

#define TNUM_HIST   10

histogram.h55 行で定義されています。


関数

void begin_measure ( ID  histid  ) 

histogram.c101 行で定義されています。

参照先 assert, histogram_control_block::begin_time, get_utm(), TMAX_HISTID, と TMIN_HISTID.

00102 {
00103     HISTCB  *p_histcb;
00104 
00105     assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID);
00106     p_histcb = &(histcb_table[histid - TMIN_HISTID]);
00107 
00108     get_utm(&(p_histcb->begin_time));
00109 }

void end_measure ( ID  histid  ) 

histogram.c115 行で定義されています。

参照先 assert, histogram_control_block::begin_time, get_utm(), histogram_control_block::histarea, histogram_control_block::over, TMAX_HISTID, と TMIN_HISTID.

00116 {
00117     HISTCB  *p_histcb;
00118     SYSUTM  end_time;
00119     uint_t  val;
00120 
00121     get_utm(&end_time);
00122 
00123     assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID);
00124     p_histcb = &(histcb_table[histid - TMIN_HISTID]);
00125 
00126     val = (uint_t)(end_time - p_histcb->begin_time);
00127     if (val <= p_histcb->maxval) {
00128         p_histcb->histarea[val]++;
00129     }
00130     else {
00131         p_histcb->over++;
00132     }
00133 }

void init_hist ( ID  histid,
uint_t  maxval,
uint_t hist 
)

void print_hist ( ID  histid  ) 

histogram.c139 行で定義されています。

参照先 assert, histogram_control_block::histarea, LOG_NOTICE, logtask_flush(), histogram_control_block::maxval, histogram_control_block::over, syslog_2, TMAX_HISTID, と TMIN_HISTID.

00140 {
00141     HISTCB  *p_histcb;
00142     uint_t  i;
00143 
00144     assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID);
00145     p_histcb = &(histcb_table[histid - TMIN_HISTID]);
00146 
00147     for (i = 0; i < p_histcb->maxval; i++) {
00148         if (p_histcb->histarea[i] > 0) {
00149             syslog_2(LOG_NOTICE, "%d : %d", i, p_histcb->histarea[i]);
00150             (void) logtask_flush(4U);
00151         }
00152     }
00153     if (p_histcb->over > 0) {
00154         syslog_2(LOG_NOTICE, "> %d : %d", p_histcb->maxval, p_histcb->over);
00155     }
00156     (void) logtask_flush(0U);
00157 }


Copyright © 2008 by Kijineko Inc.

ホームページ制作