~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/status_helper.cc

  • Committer: Mark Atwood
  • Date: 2011-11-08 19:06:32 UTC
  • mfrom: (2445.1.22 rf)
  • Revision ID: me@mark.atwood.name-20111108190632-7pfvz4ggbolmlnnu
mergeĀ lp:~olafvdspek/drizzle/refactor10

Show diffs side-by-side

added added

removed removed

Lines of Context:
64
64
 
65
65
static st_show_var_func_container show_connection_count_cont_new= { &show_connection_count_new };
66
66
 
67
 
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)
68
68
{
69
69
  ostringstream oss;
70
 
  string return_value;
71
 
 
72
 
  switch (show_type) {
 
70
  switch (show_type) 
 
71
  {
73
72
  case SHOW_DOUBLE_STATUS:
74
73
    value= ((char *) status_var + (ulong) value);
75
74
    /* fall through */
76
75
  case SHOW_DOUBLE:
77
76
    oss.precision(6);
78
77
    oss << *(double *) value;
79
 
    return_value= oss.str();
80
 
    break;
 
78
    return oss.str();
81
79
  case SHOW_LONG_STATUS:
82
80
    value= ((char *) status_var + (ulong) value);
83
81
    /* fall through */
84
82
  case SHOW_LONG:
85
 
    return_value=boost::lexical_cast<std::string>(*(long*) value);
 
83
    return boost::lexical_cast<std::string>(*(long*) value);
86
84
    break;
87
85
  case SHOW_LONGLONG_STATUS:
88
86
    value= ((char *) status_var + (uint64_t) value);
89
87
    /* fall through */
90
88
  case SHOW_LONGLONG:
91
 
    return_value=boost::lexical_cast<std::string>(*(int64_t*) value);
92
 
    break;
 
89
    return boost::lexical_cast<std::string>(*(int64_t*) value);
93
90
  case SHOW_SIZE:
94
 
    return_value=boost::lexical_cast<std::string>(*(size_t*) value);
95
 
    break;
 
91
    return boost::lexical_cast<std::string>(*(size_t*) value);
96
92
  case SHOW_HA_ROWS:
97
 
    return_value=boost::lexical_cast<std::string>((int64_t) *(ha_rows*) value);
98
 
    break;
 
93
    return boost::lexical_cast<std::string>((int64_t) *(ha_rows*) value);
99
94
  case SHOW_BOOL:
100
95
  case SHOW_MY_BOOL:
101
 
    return_value= *(bool*) value ? "ON" : "OFF";
102
 
    break;
 
96
    return *(bool*) value ? "ON" : "OFF";
103
97
  case SHOW_INT:
104
98
  case SHOW_INT_NOFLUSH: // the difference lies in refresh_status()
105
 
    return_value=boost::lexical_cast<std::string>((long) *(uint32_t*) value);
106
 
    break;
 
99
    return boost::lexical_cast<std::string>((long) *(uint32_t*) value);
107
100
  case SHOW_CHAR:
108
 
    {
109
 
      if (value)
110
 
        return_value= value;
111
 
      break;
112
 
    }
 
101
    if (value)
 
102
      return value;
 
103
    break;
113
104
  case SHOW_CHAR_PTR:
114
 
    {
115
 
      if (*(char**) value)
116
 
        return_value= *(char**) value;
117
 
 
118
 
      break;
119
 
    }
 
105
    if (*(char**) value)
 
106
      return *(char**) value;
 
107
    break;
120
108
  case SHOW_UNDEF:
121
109
    break;                                        // Return empty string
122
110
  case SHOW_SYS:                                  // Cannot happen
123
111
  default:
124
112
    assert(0);
125
 
    break;
126
113
  }
127
 
 
128
 
  return return_value;
 
114
  return string();
129
115
}
130
116
 
131
117
drizzle_show_var StatusHelper::status_vars_defs[]=