~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/set_var.h

  • Committer: Brian Aker
  • Date: 2009-03-12 00:51:19 UTC
  • mfrom: (910.4.17 sparc)
  • Revision ID: brian@tangent.org-20090312005119-xemqiftml9jhyhcr
Merg'ing Stewart.

Show diffs side-by-side

added added

removed removed

Lines of Context:
145
145
};
146
146
 
147
147
 
148
 
/*
149
 
  A global-only uint64_t variable that requires its access to be
150
 
  protected with a mutex.
151
 
*/
152
 
 
153
 
class sys_var_long_ptr_global: public sys_var_global
154
 
{
155
 
  uint64_t *value;
156
 
public:
157
 
  sys_var_long_ptr_global(sys_var_chain *chain, const char *name_arg,
158
 
                          uint64_t *value_ptr_arg,
159
 
                          pthread_mutex_t *guard_arg,
160
 
                          sys_after_update_func after_update_arg= NULL)
161
 
    :sys_var_global(name_arg, after_update_arg, guard_arg),
162
 
    value(value_ptr_arg)
163
 
  { chain_sys_var(chain); }
164
 
  bool check(Session *session, set_var *var);
165
 
  bool update(Session *session, set_var *var);
166
 
  void set_default(Session *session, enum_var_type type);
167
 
  SHOW_TYPE show_type() { return SHOW_LONG; }
168
 
  unsigned char *value_ptr(Session *, enum_var_type, const LEX_STRING *)
169
 
  { return (unsigned char*) value; }
170
 
};
171
 
 
172
 
 
173
 
/*
174
 
  A global uint64_t variable that is protected by LOCK_global_system_variables
175
 
*/
176
 
 
177
 
class sys_var_long_ptr :public sys_var_long_ptr_global
178
 
{
179
 
public:
180
 
  sys_var_long_ptr(sys_var_chain *chain, const char *name_arg, uint64_t *value_ptr,
181
 
                   sys_after_update_func after_update_arg= NULL);
182
 
};
183
 
 
184
 
 
185
148
class sys_var_uint32_t_ptr :public sys_var
186
149
{
187
150
  uint32_t *value;
195
158
                       sys_after_update_func func)
196
159
    :sys_var(name_arg,func), value(value_ptr_arg)
197
160
  { chain_sys_var(chain); }
 
161
  bool check(Session *session, set_var *var);
198
162
  bool update(Session *session, set_var *var);
199
163
  void set_default(Session *session, enum_var_type type);
200
164
  SHOW_TYPE show_type() { return SHOW_LONG; }