~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/logging_stats/logging_stats.h

  • Committer: Jay Pipes
  • Date: 2010-04-08 16:27:25 UTC
  • mfrom: (1405.6.10 replication-pairs)
  • mto: This revision was merged to the branch mainline in revision 1457.
  • Revision ID: jpipes@serialcoder-20100408162725-sugbgn38oxjqclq2
Merge trunk and replication-pairs with conflict resolution

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
#ifndef PLUGIN_LOGGING_STATS_LOGGING_STATS_H
31
31
#define PLUGIN_LOGGING_STATS_LOGGING_STATS_H
32
32
 
33
 
#include "score_board_slot.h"
34
 
 
 
33
#include "scoreboard_slot.h"
 
34
#include "user_commands.h"
 
35
#include "scoreboard.h"
35
36
#include <drizzled/atomics.h>
36
37
#include <drizzled/enum.h>
37
38
#include <drizzled/session.h>
38
39
#include <drizzled/plugin/logging.h>
39
40
 
40
41
#include <string>
 
42
#include <vector>
41
43
 
42
 
extern pthread_rwlock_t LOCK_scoreboard;
 
44
extern pthread_rwlock_t LOCK_current_scoreboard_vector;
43
45
 
44
46
class LoggingStats: public drizzled::plugin::Logging
45
47
{
68
70
    is_enabled= false;
69
71
  }
70
72
 
71
 
  uint32_t getScoreBoardSize()
72
 
  {
73
 
    return scoreboard_size;
74
 
  }
75
 
 
76
 
  ScoreBoardSlot *getScoreBoardSlots()
77
 
  {
78
 
    return score_board_slots;
 
73
  Scoreboard *getCurrentScoreboard()
 
74
  {          
 
75
    return current_scoreboard;
 
76
  }
 
77
 
 
78
  std::vector<ScoreboardSlot* > *getCumulativeStatsByUserVector()
 
79
  {
 
80
    return cumulative_stats_by_user_vector; 
 
81
  }
 
82
 
 
83
  uint32_t getCumulativeStatsByUserIndex()
 
84
  {
 
85
    return cumulative_stats_by_user_index;
79
86
  }
80
87
 
81
88
private:
82
89
  static const int32_t UNINITIALIZED= -1;
83
90
 
 
91
  std::vector<ScoreboardSlot* > *cumulative_stats_by_user_vector;
 
92
 
 
93
  uint32_t cumulative_stats_by_user_max;
 
94
 
 
95
  uint32_t cumulative_stats_by_user_index;
 
96
 
 
97
  Scoreboard *current_scoreboard;
 
98
 
84
99
  bool isBeingLogged(drizzled::Session *session);
85
100
 
86
 
  void updateScoreBoard(ScoreBoardSlot *score_board_slot, drizzled::Session *session);
 
101
  void updateCurrentScoreboard(ScoreboardSlot *scoreboard_slot, drizzled::Session *session);
 
102
 
 
103
  void updateCumulativeStatsByUserVector(ScoreboardSlot *current_scoreboard_slot);
 
104
 
 
105
  void preAllocateScoreboardSlotVector(uint32_t size,
 
106
                                       std::vector<ScoreboardSlot *> *scoreboard_slot_vector);
 
107
 
 
108
  void deleteScoreboardSlotVector(std::vector<ScoreboardSlot *> *scoreboard_slot_vector);
87
109
 
88
110
  drizzled::atomic<bool> is_enabled;
89
111
 
90
 
  ScoreBoardSlot *score_board_slots;
91
 
 
92
 
  uint32_t scoreboard_size;
93
112
};
94
113
#endif /* PLUGIN_LOGGING_STATS_LOGGING_STATS_H */