~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/status_dictionary/status.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:
44
44
  add_field("VARIABLE_VALUE", 1024);
45
45
}
46
46
 
47
 
StateTool::Generator::Generator(Field **arg, sql_var_t option_arg,
48
 
                                drizzle_show_var *variables_args)
49
 
                                :
 
47
StateTool::Generator::Generator(Field **arg, sql_var_t option_arg, drizzle_show_var *variables_args) :
50
48
  plugin::TableFunction::Generator(arg),
51
49
  option_type(option_arg),
52
50
  variables(variables_args)
53
51
{
54
52
}
55
53
 
56
 
StateTool::Generator::~Generator()
57
 
{
58
 
}
59
 
 
60
54
bool StateTool::Generator::populate()
61
55
{
62
56
  while (variables && variables->name)
63
57
  {
64
58
    drizzle_show_var *var;
65
59
    MY_ALIGNED_BYTE_ARRAY(buff_data, SHOW_VAR_FUNC_BUFF_SIZE, int64_t);
66
 
    char * const buff= (char *) &buff_data;
 
60
    char* buff= (char *) &buff_data;
67
61
 
68
62
    /*
69
63
      if var->type is SHOW_FUNC, call the function.
92
86
  return false;
93
87
}
94
88
 
95
 
void StateTool::Generator::fill(const std::string &name, char *value, SHOW_TYPE show_type)
 
89
void StateTool::Generator::fill(const std::string &name, const char *value, SHOW_TYPE show_type)
96
90
{
97
 
  std::ostringstream oss;
98
 
  std::string return_value;
 
91
  boost::mutex::scoped_lock lock(getSession().catalog().systemVariableLock());
99
92
 
 
93
  if (show_type == SHOW_SYS)
100
94
  {
101
 
    boost::mutex::scoped_lock scopedLock(getSession().catalog().systemVariableLock());
102
 
 
103
 
    if (show_type == SHOW_SYS)
104
 
    {
105
 
      show_type= ((sys_var*) value)->show_type();
106
 
      value= (char*) ((sys_var*) value)->value_ptr(&(getSession()), option_type,
107
 
                                                   &(null_lex_string()));
108
 
    }
109
 
 
110
 
    return_value= StatusHelper::fillHelper(NULL, value, show_type); 
 
95
    show_type= ((sys_var*) value)->show_type();
 
96
    value= (const char*) ((sys_var*) value)->value_ptr(&(getSession()), option_type);
111
97
  }
 
98
 
 
99
  std::string return_value= StatusHelper::fillHelper(NULL, value, show_type); 
112
100
  push(name);
113
 
 
114
 
  if (return_value.length())
115
 
    push(return_value);
116
 
  else 
117
 
    push(" ");
 
101
  push(return_value.empty() ? " " : return_value);
118
102
}