Changed to c++ linking convention for all functions.
}
double
-statHistDeltaMedian(const StatHist * A, const StatHist * B)
+statHistDeltaMedian(const StatHist & A, const StatHist & B)
{
- return A->deltaPctile(*B, 0.5);
+ return statHistDeltaPctile(A,B, 0.5);
}
double
-StatHist::deltaPctile(const StatHist & B, double pctile) const
+statHistDeltaPctile(const StatHist & A, const StatHist & B, double pctile)
{
int i;
int s1 = 0;
int a = 0;
int b = 0;
int I = 0;
- int J = capacity;
+ int J = A.capacity;
int K;
double f;
- assert(capacity == B.capacity);
+ assert(A.capacity == B.capacity);
- int *D = (int *)xcalloc(capacity, sizeof(int));
+ int *D = (int *)xcalloc(A.capacity, sizeof(int));
- for (i = 0; i < capacity; ++i) {
- D[i] = B.bins[i] - bins[i];
+ for (i = 0; i < A.capacity; ++i) {
+ D[i] = B.bins[i] - A.bins[i];
assert(D[i] >= 0);
}
- for (i = 0; i < capacity; ++i)
+ for (i = 0; i < A.capacity; ++i)
s1 += D[i];
h = int(s1 * pctile);
- for (i = 0; i < capacity; ++i) {
+ for (i = 0; i < A.capacity; ++i) {
J = i;
b += D[J];
K = (int) floor(f * (double) (J - I) + I);
- return val(K);
+ return A.val(K);
}
static void
StatHist() : bins(NULL), capacity(0), min(0), max(0), scale(1.0),
val_in(NULL), val_out(NULL) {};
StatHist(const StatHist&);
- double deltaMedian(const StatHist &B, double pctile) const;
void dump(StoreEntry *sentry, StatHistBinDumper * bd);
void logInit(int capacity, double min, double max);
void enumInit(int last_enum);
};
/* StatHist */
-SQUIDCEXTERN void statHistCount(StatHist * H, double val);
-SQUIDCEXTERN double statHistDeltaMedian(const StatHist * A, const StatHist * B);
-SQUIDCEXTERN double statHistDeltaPctile(const StatHist * A, const StatHist * B, double pctile);
-SQUIDCEXTERN void statHistDump(const StatHist * H, StoreEntry * sentry, StatHistBinDumper * bd);
-SQUIDCEXTERN void statHistLogInit(StatHist * H, int capacity, double min, double max);
-SQUIDCEXTERN void statHistEnumInit(StatHist * H, int last_enum);
-SQUIDCEXTERN void statHistIntInit(StatHist * H, int n);
-SQUIDCEXTERN StatHistBinDumper statHistEnumDumper;
-SQUIDCEXTERN StatHistBinDumper statHistIntDumper;
+void statHistCount(StatHist * H, double val);
+double statHistDeltaMedian(const StatHist & A, const StatHist & B);
+double statHistDeltaPctile(const StatHist & A, const StatHist & B, double pctile);
+void statHistDump(const StatHist * H, StoreEntry * sentry, StatHistBinDumper * bd);
+void statHistLogInit(StatHist * H, int capacity, double min, double max);
+void statHistEnumInit(StatHist * H, int last_enum);
+void statHistIntInit(StatHist * H, int n);
+StatHistBinDumper statHistEnumDumper;
+StatHistBinDumper statHistIntDumper;
break;
case PERF_MEDIAN_HTTP_ALL:
- x = statHistDeltaMedian(&l->client_http.all_svc_time,
- &f->client_http.all_svc_time);
+ x = statHistDeltaMedian(l->client_http.all_svc_time,
+ f->client_http.all_svc_time);
break;
case PERF_MEDIAN_HTTP_MISS:
- x = statHistDeltaMedian(&l->client_http.miss_svc_time,
- &f->client_http.miss_svc_time);
+ x = statHistDeltaMedian(l->client_http.miss_svc_time,
+ f->client_http.miss_svc_time);
break;
case PERF_MEDIAN_HTTP_NM:
- x = statHistDeltaMedian(&l->client_http.nm_svc_time,
- &f->client_http.nm_svc_time);
+ x = statHistDeltaMedian(l->client_http.nm_svc_time,
+ f->client_http.nm_svc_time);
break;
case PERF_MEDIAN_HTTP_HIT:
- x = statHistDeltaMedian(&l->client_http.hit_svc_time,
- &f->client_http.hit_svc_time);
+ x = statHistDeltaMedian(l->client_http.hit_svc_time,
+ f->client_http.hit_svc_time);
break;
case PERF_MEDIAN_ICP_QUERY:
- x = statHistDeltaMedian(&l->icp.query_svc_time, &f->icp.query_svc_time);
+ x = statHistDeltaMedian(l->icp.query_svc_time, f->icp.query_svc_time);
break;
case PERF_MEDIAN_ICP_REPLY:
- x = statHistDeltaMedian(&l->icp.reply_svc_time, &f->icp.reply_svc_time);
+ x = statHistDeltaMedian(l->icp.reply_svc_time, f->icp.reply_svc_time);
break;
case PERF_MEDIAN_DNS:
- x = statHistDeltaMedian(&l->dns.svc_time, &f->dns.svc_time);
+ x = statHistDeltaMedian(l->dns.svc_time, f->dns.svc_time);
break;
case PERF_MEDIAN_RHR:
break;
case PERF_MEDIAN_HTTP_NH:
- x = statHistDeltaMedian(&l->client_http.nh_svc_time,
- &f->client_http.nh_svc_time);
+ x = statHistDeltaMedian(l->client_http.nh_svc_time,
+ f->client_http.nh_svc_time);
break;
default:
stats.client_http_kbytes_in = XAVG(client_http.kbytes_in.kb);
stats.client_http_kbytes_out = XAVG(client_http.kbytes_out.kb);
- stats.client_http_all_median_svc_time = statHistDeltaMedian(&l->client_http.all_svc_time,
- &f->client_http.all_svc_time) / 1000.0;
- stats.client_http_miss_median_svc_time = statHistDeltaMedian(&l->client_http.miss_svc_time,
- &f->client_http.miss_svc_time) / 1000.0;
- stats.client_http_nm_median_svc_time = statHistDeltaMedian(&l->client_http.nm_svc_time,
- &f->client_http.nm_svc_time) / 1000.0;
- stats.client_http_nh_median_svc_time = statHistDeltaMedian(&l->client_http.nh_svc_time,
- &f->client_http.nh_svc_time) / 1000.0;
- stats.client_http_hit_median_svc_time = statHistDeltaMedian(&l->client_http.hit_svc_time,
- &f->client_http.hit_svc_time) / 1000.0;
+ stats.client_http_all_median_svc_time = statHistDeltaMedian(l->client_http.all_svc_time,
+ f->client_http.all_svc_time) / 1000.0;
+ stats.client_http_miss_median_svc_time = statHistDeltaMedian(l->client_http.miss_svc_time,
+ f->client_http.miss_svc_time) / 1000.0;
+ stats.client_http_nm_median_svc_time = statHistDeltaMedian(l->client_http.nm_svc_time,
+ f->client_http.nm_svc_time) / 1000.0;
+ stats.client_http_nh_median_svc_time = statHistDeltaMedian(l->client_http.nh_svc_time,
+ f->client_http.nh_svc_time) / 1000.0;
+ stats.client_http_hit_median_svc_time = statHistDeltaMedian(l->client_http.hit_svc_time,
+ f->client_http.hit_svc_time) / 1000.0;
stats.server_all_requests = XAVG(server.all.requests);
stats.server_all_errors = XAVG(server.all.errors);
stats.icp_q_kbytes_recv = XAVG(icp.q_kbytes_recv.kb);
stats.icp_r_kbytes_recv = XAVG(icp.r_kbytes_recv.kb);
- stats.icp_query_median_svc_time = statHistDeltaMedian(&l->icp.query_svc_time,
- &f->icp.query_svc_time) / 1000000.0;
- stats.icp_reply_median_svc_time = statHistDeltaMedian(&l->icp.reply_svc_time,
- &f->icp.reply_svc_time) / 1000000.0;
- stats.dns_median_svc_time = statHistDeltaMedian(&l->dns.svc_time,
- &f->dns.svc_time) / 1000.0;
+ stats.icp_query_median_svc_time = statHistDeltaMedian(l->icp.query_svc_time,
+ f->icp.query_svc_time) / 1000000.0;
+ stats.icp_reply_median_svc_time = statHistDeltaMedian(l->icp.reply_svc_time,
+ f->icp.reply_svc_time) / 1000000.0;
+ stats.dns_median_svc_time = statHistDeltaMedian(l->dns.svc_time,
+ f->dns.svc_time) / 1000.0;
stats.unlink_requests = XAVG(unlink.requests);
stats.page_faults = XAVG(page_faults);
stats.average_select_fd_period = f->select_fds > l->select_fds ?
(f->select_time - l->select_time) / (f->select_fds - l->select_fds) : 0.0;
- stats.median_select_fds = statHistDeltaMedian(&l->select_fds_hist, &f->select_fds_hist);
+ stats.median_select_fds = statHistDeltaMedian(l->select_fds_hist, f->select_fds_hist);
stats.swap_outs = XAVG(swap.outs);
stats.swap_ins = XAVG(swap.ins);
stats.swap_files_cleaned = XAVG(swap.files_cleaned);
switch (which) {
case PCTILE_HTTP:
- x = l->client_http.all_svc_time.deltaPctile(f->client_http.all_svc_time, pctile);
+ x = statHistDeltaPctile(l->client_http.all_svc_time,f->client_http.all_svc_time, pctile);
break;
case PCTILE_HIT:
- x = l->client_http.hit_svc_time.deltaPctile(f->client_http.hit_svc_time, pctile);
+ x = statHistDeltaPctile(l->client_http.hit_svc_time,f->client_http.hit_svc_time, pctile);
break;
case PCTILE_MISS:
- x = l->client_http.miss_svc_time.deltaPctile(f->client_http.miss_svc_time, pctile);
+ x = statHistDeltaPctile(l->client_http.miss_svc_time,f->client_http.miss_svc_time, pctile);
break;
case PCTILE_NM:
- x = l->client_http.nm_svc_time.deltaPctile(f->client_http.nm_svc_time, pctile);
+ x = statHistDeltaPctile(l->client_http.nm_svc_time,f->client_http.nm_svc_time, pctile);
break;
case PCTILE_NH:
- x = l->client_http.nh_svc_time.deltaPctile(f->client_http.nh_svc_time, pctile);
+ x = statHistDeltaPctile(l->client_http.nh_svc_time,f->client_http.nh_svc_time, pctile);
break;
case PCTILE_ICP_QUERY:
- x = l->icp.query_svc_time.deltaPctile(f->icp.query_svc_time, pctile);
+ x = statHistDeltaPctile(l->icp.query_svc_time,f->icp.query_svc_time, pctile);
break;
case PCTILE_DNS:
- x = l->dns.svc_time.deltaPctile(f->dns.svc_time, pctile);
+ x = statHistDeltaPctile(l->dns.svc_time,f->dns.svc_time, pctile);
break;
default: