24#ifndef RPL_INFO_HANDLER_H 
   25#define RPL_INFO_HANDLER_H 
  181  template <
class TypeHandler>
 
  190  template <
class TypeHandler>
 
  211  template <
class TypeHandler>
 
  213    if (pk_cursor >= 
ninfo) 
return true;
 
  231  template <
class TypeHandlerPo
inter, 
class TypeHandler>
 
  233                                 TypeHandler 
const default_value) {
 
  264  template <
class TypeHandler>
 
  267      std::add_const_t<std::remove_pointer_t<TypeHandler>> *default_value) {
 
  412                           const size_t size) = 0;
 
  419                           const size_t size) = 0;
 
  422                                            const char *default_value) = 0;
 
  425                                            const uchar *default_value) = 0;
 
  427                                            const ulong default_value) = 0;
 
  429                                            const int default_value) = 0;
 
  431                                            const float default_value) = 0;
 
Definition: rpl_info_factory.h:41
 
Definition: rpl_info_handler.h:58
 
void set_sync_period(uint period)
Configures the number of events after which the info (e.g.
Definition: rpl_info_handler.cc:65
 
uint get_rpl_info_type()
Gets the type of the repository that is used.
Definition: rpl_info_handler.h:164
 
virtual int do_init_info(uint instance)=0
 
enum_return_check check_info()
Checks the repository's status.
Definition: rpl_info_handler.h:97
 
enum_field_get_status get_info(TypeHandler value, const size_t size, std::add_const_t< std::remove_pointer_t< TypeHandler > > *default_value)
Returns the value of a string field.
Definition: rpl_info_handler.h:265
 
virtual bool do_set_info(const int pos, const float value)=0
 
virtual bool do_set_info(const int pos, const uchar *value, const size_t size)=0
 
virtual enum_field_get_status do_get_info(const int pos, char *value, const size_t size, const char *default_value)=0
 
int clean_info()
Deletes any information in the repository.
Definition: rpl_info_handler.h:134
 
enum_field_get_status get_info(Server_ids *value, const Server_ids *default_value)
Returns the value of a Server_id field.
Definition: rpl_info_handler.h:291
 
Rpl_info_values * field_values
Definition: rpl_info_handler.h:358
 
virtual int do_init_info()=0
 
virtual int do_remove_info()=0
 
virtual bool do_update_is_transactional()=0
 
virtual bool do_set_info(const int pos, const std::nullptr_t value, const size_t size)=0
 
MY_BITMAP nullable_fields
Bitset holding which of the fields are allowed to be NULL.
Definition: rpl_info_handler.h:387
 
bool prv_error
Definition: rpl_info_handler.h:370
 
virtual int do_flush_info(const bool force)=0
 
virtual bool do_set_info(const int pos, const ulong value)=0
 
bool is_field_nullable(int pos)
Checks whether or not the field at position pos is allowed to be NULL.
Definition: rpl_info_handler.cc:79
 
virtual enum_field_get_status do_get_info(const int pos, int *value, const int default_value)=0
 
virtual bool do_set_info(const int pos, const char *value)=0
 
uint sync_counter
Definition: rpl_info_handler.h:377
 
virtual int do_prepare_info_for_read()=0
 
virtual enum_return_check do_check_info()=0
 
virtual enum_field_get_status do_get_info(const int pos, float *value, const float default_value)=0
 
char * get_description_info()
Returns a string describing the repository.
Definition: rpl_info_handler.h:326
 
Rpl_info_handler & operator=(const Rpl_info_handler &handler)=delete
 
enum_field_get_status prv_get_error
Definition: rpl_info_handler.h:371
 
bool set_info(TypeHandler const value)
Sets the value of a field to value.
Definition: rpl_info_handler.h:182
 
int prepare_info_for_read()
Enables the storage system to receive reads, i.e.
Definition: rpl_info_handler.h:148
 
enum_field_get_status get_info(TypeHandlerPointer value, TypeHandler const default_value)
Returns the value of a field.
Definition: rpl_info_handler.h:232
 
virtual bool do_is_transactional()=0
 
const char * get_rpl_info_type_str()
Returns a string corresponding to the type.
Definition: rpl_info_handler.cc:67
 
int get_number_info()
Returns the number of fields handled by this handler.
Definition: rpl_info_handler.h:308
 
int ninfo
Definition: rpl_info_handler.h:364
 
int init_info()
After creating an object and assembling components, this method is used to initialize internal struct...
Definition: rpl_info_handler.h:85
 
bool update_is_transactional()
Updates the value returned by the member function is_transactional() because it may be expensive to c...
Definition: rpl_info_handler.h:351
 
virtual uint do_get_rpl_info_type()=0
 
int flush_info(const bool force)
Flushes and syncs in-memory information into a stable storage (i.e.
Definition: rpl_info_handler.h:115
 
virtual bool do_set_info(const int pos, const int value)=0
 
virtual int do_clean_info()=0
 
int remove_info()
Deletes any information in it and in some cases the repository.
Definition: rpl_info_handler.h:125
 
void end_info()
Closes access to the repository.
Definition: rpl_info_handler.h:139
 
Rpl_info_handler(const Rpl_info_handler &handler)=delete
 
virtual enum_field_get_status do_get_info(const int pos, uchar *value, const size_t size, const uchar *default_value)=0
 
virtual enum_field_get_status do_get_info(const int pos, Server_ids *value, const Server_ids *default_value)=0
 
enum_field_get_status
Definition: rpl_info_handler.h:66
 
virtual ~Rpl_info_handler()
Definition: rpl_info_handler.cc:60
 
virtual int do_prepare_info_for_write()=0
 
int prepare_info_for_write()
Enables the storage system to receive writes, i.e.
Definition: rpl_info_handler.h:157
 
virtual bool do_set_info(const int pos, const std::nullptr_t value)=0
 
virtual bool do_set_info(const int pos, const Server_ids *value)=0
 
bool set_info(TypeHandler const value, const size_t size)
Definition: rpl_info_handler.h:191
 
virtual enum_return_check do_check_info(uint instance)=0
 
bool is_transactional()
Any transactional repository may have its updates rolled back in case of a failure.
Definition: rpl_info_handler.h:336
 
uint sync_period
Definition: rpl_info_handler.h:382
 
virtual enum_field_get_status do_get_info(const int pos, ulong *value, const ulong default_value)=0
 
virtual char * do_get_description_info()=0
 
virtual void do_end_info()=0
 
bool set_info(int pk_cursor, TypeHandler const value)
set the value of a field pointed at pk_cursor to @ value.
Definition: rpl_info_handler.h:212
 
int cursor
Definition: rpl_info_handler.h:367
 
Definition: rpl_info_values.h:31
 
Definition: dynamic_ids.h:33
 
The handler class is the interface for dynamically loadable storage engines.
Definition: handler.h:4741
 
Some integer typedefs for easier portability.
 
unsigned char uchar
Definition: my_inttypes.h:52
 
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
 
size_t size(const char *const c)
Definition: base64.h:46
 
required uint32 status
Definition: replication_asynchronous_connection_failover.proto:61
 
ulong w_rr
Definition: rpl_rli_pdb.cc:81
 
enum_info_repository
Definition: rpl_info_handler.h:37
 
@ INFO_REPOSITORY_TABLE
Definition: rpl_info_handler.h:39
 
@ OBSOLETE_INFO_REPOSITORY_FILE
Definition: rpl_info_handler.h:38
 
@ INVALID_INFO_REPOSITORY
Definition: rpl_info_handler.h:45
 
@ INFO_REPOSITORY_DUMMY
Definition: rpl_info_handler.h:40
 
bool operator!(Rpl_info_handler::enum_field_get_status status)
Definition: rpl_info_handler.cc:30
 
enum_return_check
Definition: rpl_info_handler.h:51
 
@ ERROR_CHECKING_REPOSITORY
Definition: rpl_info_handler.h:54
 
@ REPOSITORY_EXISTS
Definition: rpl_info_handler.h:53
 
@ REPOSITORY_DOES_NOT_EXIST
Definition: rpl_info_handler.h:52
 
@ REPOSITORY_CLEARED
Definition: rpl_info_handler.h:55
 
uint mta_debug_concurrent_access
Definition: rpl_rli_pdb.cc:82
 
Definition: my_bitmap.h:43