~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/logging_stats/stats_schema.h

  • Committer: Andrew Hutchings
  • Date: 2010-11-01 22:14:18 UTC
  • mto: This revision was merged to the branch mainline in revision 1907.
  • Revision ID: andrew@linuxjedi.co.uk-20101101221418-9n9gmm4ms7fl8vo5
Fix copyright

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
#include <drizzled/plugin/table_function.h>
34
34
#include <drizzled/field.h>
35
35
 
 
36
#include "user_commands.h"
 
37
#include "global_stats.h"
36
38
#include "logging_stats.h"
37
39
 
38
 
class CommandsTool : public drizzled::plugin::TableFunction
 
40
#include <vector>
 
41
 
 
42
class GlobalStatementsTool : public drizzled::plugin::TableFunction
39
43
{
40
 
private:
41
 
  LoggingStats *outer_logging_stats;
42
 
 
43
44
public:
44
 
 
45
 
  CommandsTool(LoggingStats *logging_stats);
 
45
  GlobalStatementsTool(LoggingStats *logging_stats);
46
46
 
47
47
  class Generator : public drizzled::plugin::TableFunction::Generator
48
48
  {
52
52
    ~Generator();
53
53
 
54
54
    bool populate();
55
 
  private:
56
 
    LoggingStats *logging_stats;
57
 
    uint32_t record_number;
58
 
  };
59
 
 
60
 
  Generator *generator(drizzled::Field **arg)
61
 
  {
62
 
    return new Generator(arg, outer_logging_stats);
63
 
  }
 
55
 
 
56
  private:
 
57
    GlobalStats *global_stats_to_display; 
 
58
    uint32_t count;
 
59
  };
 
60
 
 
61
  Generator *generator(drizzled::Field **arg)
 
62
  {
 
63
    return new Generator(arg, logging_stats);
 
64
  }
 
65
 
 
66
private:
 
67
  LoggingStats *logging_stats;
 
68
};
 
69
 
 
70
class SessionStatementsTool : public drizzled::plugin::TableFunction
 
71
{
 
72
public:
 
73
  SessionStatementsTool(LoggingStats *logging_stats);
 
74
 
 
75
  class Generator : public drizzled::plugin::TableFunction::Generator
 
76
  {
 
77
  public:
 
78
    Generator(drizzled::Field **arg, LoggingStats *logging_stats);
 
79
 
 
80
    bool populate();
 
81
 
 
82
  private:
 
83
    UserCommands *user_commands;
 
84
    uint32_t count;
 
85
  };
 
86
 
 
87
  Generator *generator(drizzled::Field **arg)
 
88
  {
 
89
    return new Generator(arg, logging_stats);
 
90
  }
 
91
 
 
92
private:
 
93
  LoggingStats *logging_stats;
 
94
};
 
95
 
 
96
class CurrentCommandsTool : public drizzled::plugin::TableFunction
 
97
{
 
98
public:
 
99
 
 
100
  CurrentCommandsTool(LoggingStats *logging_stats);
 
101
 
 
102
  class Generator : public drizzled::plugin::TableFunction::Generator
 
103
  {
 
104
  public:
 
105
    Generator(drizzled::Field **arg, LoggingStats *logging_stats);
 
106
 
 
107
    bool populate();
 
108
  private:
 
109
    LoggingStats *inner_logging_stats; 
 
110
    Scoreboard *current_scoreboard; 
 
111
    uint32_t current_bucket;
 
112
    bool isEnabled;
 
113
    std::vector<ScoreboardSlot *>::iterator scoreboard_vector_it;
 
114
    std::vector<ScoreboardSlot *>::iterator scoreboard_vector_end;
 
115
    std::vector<std::vector<ScoreboardSlot* >* >::iterator vector_of_scoreboard_vectors_it;
 
116
    std::vector<std::vector<ScoreboardSlot* >* >::iterator vector_of_scoreboard_vectors_end; 
 
117
    boost::shared_mutex* current_lock;
 
118
 
 
119
    void setVectorIteratorsAndLock(uint32_t bucket_number);
 
120
  };
 
121
 
 
122
  Generator *generator(drizzled::Field **arg)
 
123
  {
 
124
    return new Generator(arg, outer_logging_stats);
 
125
  }
 
126
private:
 
127
  LoggingStats *outer_logging_stats;
 
128
};
 
129
 
 
130
class CumulativeCommandsTool : public drizzled::plugin::TableFunction
 
131
{
 
132
public:
 
133
 
 
134
  CumulativeCommandsTool(LoggingStats *logging_stats);
 
135
 
 
136
  class Generator : public drizzled::plugin::TableFunction::Generator
 
137
  {
 
138
  public:
 
139
    Generator(drizzled::Field **arg, LoggingStats *logging_stats);
 
140
 
 
141
    bool populate();
 
142
  private:
 
143
    LoggingStats *inner_logging_stats;
 
144
    int32_t record_number;
 
145
    int32_t last_valid_index;
 
146
  };
 
147
 
 
148
  Generator *generator(drizzled::Field **arg)
 
149
  {
 
150
    return new Generator(arg, outer_logging_stats);
 
151
  }
 
152
private:
 
153
  LoggingStats *outer_logging_stats;
 
154
};
 
155
 
 
156
class CumulativeUserStatsTool : public drizzled::plugin::TableFunction
 
157
{
 
158
public:
 
159
 
 
160
  CumulativeUserStatsTool(LoggingStats *logging_stats);
 
161
 
 
162
  class Generator : public drizzled::plugin::TableFunction::Generator
 
163
  {
 
164
  public:
 
165
    Generator(drizzled::Field **arg, LoggingStats *logging_stats);
 
166
 
 
167
    bool populate();
 
168
  private:
 
169
    LoggingStats *inner_logging_stats;
 
170
    int32_t record_number;
 
171
    int32_t last_valid_index;
 
172
  };
 
173
 
 
174
  Generator *generator(drizzled::Field **arg)
 
175
  {
 
176
    return new Generator(arg, outer_logging_stats);
 
177
  }
 
178
private:
 
179
  LoggingStats *outer_logging_stats;
 
180
};
 
181
 
 
182
class ScoreboardStatsTool : public drizzled::plugin::TableFunction
 
183
{
 
184
public:
 
185
 
 
186
  ScoreboardStatsTool(LoggingStats *logging_stats);
 
187
 
 
188
  class Generator : public drizzled::plugin::TableFunction::Generator
 
189
  {
 
190
  public:
 
191
    Generator(drizzled::Field **arg, LoggingStats *logging_stats);
 
192
 
 
193
    bool populate();
 
194
  private:
 
195
    LoggingStats *inner_logging_stats;
 
196
    bool is_last_record;
 
197
  };
 
198
 
 
199
  Generator *generator(drizzled::Field **arg)
 
200
  {
 
201
    return new Generator(arg, outer_logging_stats);
 
202
  }
 
203
private:
 
204
  LoggingStats *outer_logging_stats;
64
205
};
65
206
 
66
207
#endif /* PLUGIN_LOGGING_STATS_STATS_SCHEMA_H */