summaryrefslogtreecommitdiff
path: root/storage/perfschema/table_all_instr.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/perfschema/table_all_instr.h')
-rw-r--r--storage/perfschema/table_all_instr.h75
1 files changed, 11 insertions, 64 deletions
diff --git a/storage/perfschema/table_all_instr.h b/storage/perfschema/table_all_instr.h
index 6e404659030..f78f8cee3ba 100644
--- a/storage/perfschema/table_all_instr.h
+++ b/storage/perfschema/table_all_instr.h
@@ -24,88 +24,29 @@
#include "pfs_instr_class.h"
#include "pfs_instr.h"
#include "pfs_engine_table.h"
+#include "table_helper.h"
/**
@addtogroup Performance_schema_tables
@{
*/
-/** Position of a cursor on table_all_instr_class. */
-struct pos_all_instr_class : public PFS_double_index,
- public PFS_instrument_view_constants
-{
- pos_all_instr_class()
- : PFS_double_index(VIEW_MUTEX, 1)
- {}
-
- inline void reset(void)
- {
- m_index_1= VIEW_MUTEX;
- m_index_2= 1;
- }
-
- inline bool has_more_view(void)
- { return (m_index_1 <= VIEW_FILE); }
-
- inline void next_view(void)
- {
- m_index_1++;
- /* Instrument keys start at 1, not 0. */
- m_index_2= 1;
- }
-};
-
-/**
- Abstract table, a union of all instrumentations class metadata.
- This table is a union of:
- - a view on all mutex classes,
- - a view on all rwlock classes,
- - a view on all cond classes,
- - a view on all file classes
-*/
-class table_all_instr_class : public PFS_engine_table
-{
-public:
- virtual int rnd_next();
- virtual int rnd_pos(const void *pos);
- virtual void reset_position(void);
-
-protected:
- table_all_instr_class(const PFS_engine_table_share *share);
-
-public:
- ~table_all_instr_class()
- {}
-
-protected:
- /**
- Build a row.
- @param klass the instrument class
- */
- virtual void make_instr_row(PFS_instr_class *klass)= 0;
-
- /** Current position. */
- pos_all_instr_class m_pos;
- /** Next position. */
- pos_all_instr_class m_next_pos;
-};
-
/** Position of a cursor on table_all_instr. */
struct pos_all_instr : public PFS_double_index,
public PFS_instrument_view_constants
{
pos_all_instr()
- : PFS_double_index(VIEW_MUTEX, 0)
+ : PFS_double_index(FIRST_VIEW, 0)
{}
inline void reset(void)
{
- m_index_1= VIEW_MUTEX;
+ m_index_1= FIRST_VIEW;
m_index_2= 0;
}
inline bool has_more_view(void)
- { return (m_index_1 <= VIEW_FILE); }
+ { return (m_index_1 <= LAST_VIEW); }
inline void next_view(void)
{
@@ -120,7 +61,8 @@ struct pos_all_instr : public PFS_double_index,
- a view on all mutex instances,
- a view on all rwlock instances,
- a view on all cond instances,
- - a view on all file instances
+ - a view on all file instances,
+ - a view on all socket instances
*/
class table_all_instr : public PFS_engine_table
{
@@ -157,6 +99,11 @@ protected:
@param pfs the file instance
*/
virtual void make_file_row(PFS_file *pfs)= 0;
+ /**
+ Build a row in the socket instance view.
+ @param pfs the socket instance
+ */
+ virtual void make_socket_row(PFS_socket *pfs)= 0;
/** Current position. */
pos_all_instr m_pos;