~ubuntu-branches/ubuntu/trusty/drizzle/trusty

« back to all changes in this revision

Viewing changes to drizzled/status_helper.cc

  • Committer: Package Import Robot
  • Author(s): Clint Byrum
  • Date: 2012-06-19 10:46:49 UTC
  • mfrom: (1.1.6)
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20120619104649-e2l0ggd4oz3um0f4
Tags: upstream-7.1.36-stable
ImportĀ upstreamĀ versionĀ 7.1.36-stable

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 */
20
20
 
21
21
#include <config.h>
 
22
#include "status_helper.h"
22
23
#include <boost/lexical_cast.hpp>
23
 
#include "status_helper.h"
 
24
#include <drizzled/open_tables_state.h>
24
25
#include <drizzled/set_var.h>
25
26
#include <drizzled/drizzled.h>
26
27
#include <plugin/myisam/myisam.h>
27
 
 
28
 
#include <drizzled/refresh_version.h>
29
 
 
30
28
#include <sstream>
31
29
 
32
30
using namespace std;
33
31
 
34
 
namespace drizzled
35
 
{
 
32
namespace drizzled {
36
33
 
37
34
extern time_t server_start_time;
38
35
extern time_t flush_status_time;
67
64
 
68
65
static st_show_var_func_container show_connection_count_cont_new= { &show_connection_count_new };
69
66
 
70
 
string StatusHelper::fillHelper(system_status_var *status_var, char *value, SHOW_TYPE show_type)
 
67
string StatusHelper::fillHelper(system_status_var *status_var, const char *value, SHOW_TYPE show_type)
71
68
{
72
69
  ostringstream oss;
73
 
  string return_value;
74
 
 
75
 
  switch (show_type) {
 
70
  switch (show_type) 
 
71
  {
76
72
  case SHOW_DOUBLE_STATUS:
77
73
    value= ((char *) status_var + (ulong) value);
78
74
    /* fall through */
79
75
  case SHOW_DOUBLE:
80
76
    oss.precision(6);
81
77
    oss << *(double *) value;
82
 
    return_value= oss.str();
83
 
    break;
 
78
    return oss.str();
84
79
  case SHOW_LONG_STATUS:
85
80
    value= ((char *) status_var + (ulong) value);
86
81
    /* fall through */
87
82
  case SHOW_LONG:
88
 
    return_value=boost::lexical_cast<std::string>(*(long*) value);
 
83
    return boost::lexical_cast<std::string>(*(long*) value);
89
84
    break;
90
85
  case SHOW_LONGLONG_STATUS:
91
86
    value= ((char *) status_var + (uint64_t) value);
92
87
    /* fall through */
93
88
  case SHOW_LONGLONG:
94
 
    return_value=boost::lexical_cast<std::string>(*(int64_t*) value);
95
 
    break;
 
89
    return boost::lexical_cast<std::string>(*(int64_t*) value);
96
90
  case SHOW_SIZE:
97
 
    return_value=boost::lexical_cast<std::string>(*(size_t*) value);
98
 
    break;
 
91
    return boost::lexical_cast<std::string>(*(size_t*) value);
99
92
  case SHOW_HA_ROWS:
100
 
    return_value=boost::lexical_cast<std::string>((int64_t) *(ha_rows*) value);
101
 
    break;
 
93
    return boost::lexical_cast<std::string>((int64_t) *(ha_rows*) value);
102
94
  case SHOW_BOOL:
103
95
  case SHOW_MY_BOOL:
104
 
    return_value= *(bool*) value ? "ON" : "OFF";
105
 
    break;
 
96
    return *(bool*) value ? "ON" : "OFF";
106
97
  case SHOW_INT:
107
98
  case SHOW_INT_NOFLUSH: // the difference lies in refresh_status()
108
 
    return_value=boost::lexical_cast<std::string>((long) *(uint32_t*) value);
109
 
    break;
 
99
    return boost::lexical_cast<std::string>((long) *(uint32_t*) value);
110
100
  case SHOW_CHAR:
111
 
    {
112
 
      if (value)
113
 
        return_value= value;
114
 
      break;
115
 
    }
 
101
    if (value)
 
102
      return value;
 
103
    break;
116
104
  case SHOW_CHAR_PTR:
117
 
    {
118
 
      if (*(char**) value)
119
 
        return_value= *(char**) value;
120
 
 
121
 
      break;
122
 
    }
 
105
    if (*(char**) value)
 
106
      return *(char**) value;
 
107
    break;
123
108
  case SHOW_UNDEF:
124
109
    break;                                        // Return empty string
125
110
  case SHOW_SYS:                                  // Cannot happen
126
111
  default:
127
112
    assert(0);
128
 
    break;
129
113
  }
130
 
 
131
 
  return return_value;
 
114
  return string();
132
115
}
133
116
 
134
117
drizzle_show_var StatusHelper::status_vars_defs[]=
140
123
  {"Connections",               (char*) &current_global_counters.connections,  SHOW_LONGLONG},
141
124
  {"Created_tmp_disk_tables",   (char*) offsetof(system_status_var, created_tmp_disk_tables), SHOW_LONGLONG_STATUS},
142
125
  {"Created_tmp_tables",        (char*) offsetof(system_status_var, created_tmp_tables), SHOW_LONGLONG_STATUS},
143
 
  {"Flush_commands",            (char*) &refresh_version,    SHOW_INT_NOFLUSH},
 
126
  {"Flush_commands",            (char*) &g_refresh_version, SHOW_INT_NOFLUSH},
144
127
  {"Handler_commit",            (char*) offsetof(system_status_var, ha_commit_count), SHOW_LONGLONG_STATUS},
145
128
  {"Handler_delete",            (char*) offsetof(system_status_var, ha_delete_count), SHOW_LONGLONG_STATUS},
146
129
  {"Handler_prepare",           (char*) offsetof(system_status_var, ha_prepare_count),  SHOW_LONGLONG_STATUS},