~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/status_helper.cc

  • Committer: Brian Aker
  • Date: 2011-11-04 21:06:16 UTC
  • mto: This revision was merged to the branch mainline in revision 2450.
  • Revision ID: brian@tangent.org-20111104210616-2at42agch94dkwb0
Additional fixes for libdrizzle.

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