~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/logging_stats/status_vars.cc

  • Committer: Brian Aker
  • Date: 2009-02-05 09:11:16 UTC
  • Revision ID: brian@tangent.org-20090205091116-iy0ersp6bhyzt1ad
Removed dead variables.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (C) 2010 Joseph Daly <skinny.moey@gmail.com>
3
 
 * All rights reserved.
4
 
 *
5
 
 * Redistribution and use in source and binary forms, with or without
6
 
 * modification, are permitted provided that the following conditions are met:
7
 
 *
8
 
 *   * Redistributions of source code must retain the above copyright notice,
9
 
 *     this list of conditions and the following disclaimer.
10
 
 *   * Redistributions in binary form must reproduce the above copyright notice,
11
 
 *     this list of conditions and the following disclaimer in the documentation
12
 
 *     and/or other materials provided with the distribution.
13
 
 *   * Neither the name of Joseph Daly nor the names of its contributors
14
 
 *     may be used to endorse or promote products derived from this software
15
 
 *     without specific prior written permission.
16
 
 *
17
 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
 
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21
 
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
 
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
 
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
 
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
 
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27
 
 * THE POSSIBILITY OF SUCH DAMAGE.
28
 
 */
29
 
 
30
 
#include "config.h"
31
 
#include <drizzled/plugin.h>
32
 
#include <drizzled/statistics_variables.h>
33
 
#include <drizzled/session.h>
34
 
#include <drizzled/drizzled.h>
35
 
#include "status_vars.h"
36
 
 
37
 
using namespace drizzled;
38
 
 
39
 
StatusVars::StatusVars()
40
 
{
41
 
  status_var_counters= (system_status_var*) malloc(sizeof(system_status_var));
42
 
  memset(status_var_counters, 0, sizeof(system_status_var));
43
 
  sent_row_count= 0;
44
 
}
45
 
 
46
 
StatusVars::StatusVars(const StatusVars &status_vars)
47
 
{
48
 
  status_var_counters= (system_status_var*) malloc(sizeof(system_status_var));
49
 
  memset(status_var_counters, 0, sizeof(system_status_var));
50
 
  copySystemStatusVar(status_var_counters, status_vars.status_var_counters); 
51
 
  sent_row_count= 0;
52
 
}
53
 
 
54
 
StatusVars::~StatusVars()
55
 
{
56
 
  free(status_var_counters); 
57
 
}
58
 
 
59
 
void StatusVars::copySystemStatusVar(system_status_var *to_var, 
60
 
                                     system_status_var *from_var)
61
 
{
62
 
  uint64_t *end= (uint64_t*) ((unsigned char*) to_var + offsetof(system_status_var,
63
 
                 last_system_status_var) + sizeof(uint64_t));
64
 
 
65
 
  uint64_t *to= (uint64_t*) to_var;
66
 
  uint64_t *from= (uint64_t*) from_var;
67
 
 
68
 
  while (to != end)
69
 
  {
70
 
    *(to++)= *(from++);
71
 
  }
72
 
  to_var->last_query_cost= from_var->last_query_cost;
73
 
}
74
 
 
75
 
void StatusVars::merge(StatusVars *status_vars)
76
 
{
77
 
  system_status_var* from_var= status_vars->getStatusVarCounters(); 
78
 
 
79
 
  uint64_t *end= (uint64_t*) ((unsigned char*) status_var_counters + offsetof(system_status_var,
80
 
                 last_system_status_var) + sizeof(uint64_t));
81
 
 
82
 
  uint64_t *to= (uint64_t*) status_var_counters;
83
 
  uint64_t *from= (uint64_t*) from_var;
84
 
 
85
 
  while (to != end)
86
 
  {
87
 
    *(to++)+= *(from++);
88
 
  }
89
 
 
90
 
  sent_row_count+= status_vars->sent_row_count;
91
 
}
92
 
 
93
 
void StatusVars::reset()
94
 
{
95
 
  memset(status_var_counters, 0, sizeof(system_status_var));
96
 
  sent_row_count= 0;
97
 
}
98
 
 
99
 
void StatusVars::logStatusVar(Session *session)
100
 
{
101
 
  copySystemStatusVar(status_var_counters, &session->status_var);
102
 
  sent_row_count+= session->sent_row_count;
103
 
}
104
 
 
105
 
bool StatusVars::hasBeenFlushed(Session *session)
106
 
{
107
 
  system_status_var *current_status_var= &session->status_var;
108
 
 
109
 
  /* check bytes received if its lower then a flush has occurred */
110
 
  uint64_t current_bytes_received= current_status_var->bytes_received;
111
 
  uint64_t my_bytes_received= status_var_counters->bytes_received;
112
 
  if (current_bytes_received < my_bytes_received)
113
 
  {
114
 
    return true;
115
 
  }
116
 
  else 
117
 
  {
118
 
    return false;
119
 
  }
120
 
}
121
 
 
122
 
void StatusVars::copyGlobalVariables(StatusVars *global_status_vars)
123
 
{
124
 
  system_status_var* from_var= global_status_vars->getStatusVarCounters();
125
 
  status_var_counters->aborted_connects= from_var->aborted_connects;  
126
 
  status_var_counters->aborted_threads= from_var->aborted_threads;
127
 
  status_var_counters->connection_time= from_var->connection_time;
128
 
}