diff options
Diffstat (limited to 'storage/perfschema/table_all_instr.h')
-rw-r--r-- | storage/perfschema/table_all_instr.h | 75 |
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; |