MySQL  8.0.20
Source Code Documentation
app_data.h File Reference
#include <stddef.h>
#include "plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xdr_utils.h"
#include "plugin/group_replication/libmysqlgcs/xdr_gen/xcom_vp.h"

Go to the source code of this file.

Macros

#define copy_app_data(target, source)
 
#define steal_app_data(target, source)
 

Functions

app_data_ptr clone_app_data (app_data_ptr a)
 
app_data_ptr clone_app_data_single (app_data_ptr a)
 Clone an app_data struct. More...
 
app_data_ptr new_app_data ()
 Constructor for app_data. More...
 
app_data_ptr init_app_data (app_data_ptr a)
 
app_data_ptr new_data (u_int n, char *val, cons_type consensus)
 
app_data_ptr new_exit ()
 
app_data_ptr new_nodes (u_int n, node_address *names, cargo_type cargo)
 
app_data_ptr new_reset (cargo_type type)
 
void _replace_app_data_list (app_data_list target, app_data_ptr source)
 
char * dbg_app_data (app_data_ptr a)
 
void follow (app_data_list l, app_data_ptr p)
 Insert p after l. More...
 
void sort_app_data (app_data_ptr x[], int n)
 Sort an array of app_data pointers. More...
 
size_t app_data_size (app_data const *a)
 Return size of an app_data. More...
 
size_t app_data_list_size (app_data const *a)
 

Macro Definition Documentation

◆ copy_app_data

#define copy_app_data (   target,
  source 
)
Value:
{ \
MAY_DBG(FN; STRLIT(" copy_app_data "); PTREXP(target); PTREXP(*target); \
PTREXP(source)); \
_replace_app_data_list(target, source); \
}
#define PTREXP(x)
Definition: gcs_debug.h:220
#define FN
Definition: gcs_debug.h:217
#define STRLIT(x)
Definition: gcs_debug.h:223

◆ steal_app_data

#define steal_app_data (   target,
  source 
)
Value:
{ \
(target) = (source); \
(source) = NULL; \
}
#define NULL
Definition: types.h:55

Function Documentation

◆ _replace_app_data_list()

void _replace_app_data_list ( app_data_list  target,
app_data_ptr  source 
)

◆ app_data_list_size()

size_t app_data_list_size ( app_data const *  a)

◆ app_data_size()

size_t app_data_size ( app_data const *  a)

Return size of an app_data.

◆ clone_app_data()

app_data_ptr clone_app_data ( app_data_ptr  a)

◆ clone_app_data_single()

app_data_ptr clone_app_data_single ( app_data_ptr  a)

Clone an app_data struct.

◆ dbg_app_data()

char* dbg_app_data ( app_data_ptr  a)

◆ follow()

void follow ( app_data_list  l,
app_data_ptr  p 
)

Insert p after l.

◆ init_app_data()

app_data_ptr init_app_data ( app_data_ptr  a)

◆ new_app_data()

app_data_ptr new_app_data ( )

Constructor for app_data.

◆ new_data()

app_data_ptr new_data ( u_int  n,
char *  val,
cons_type  consensus 
)

◆ new_exit()

app_data_ptr new_exit ( )

◆ new_nodes()

app_data_ptr new_nodes ( u_int  n,
node_address *  names,
cargo_type  cargo 
)

◆ new_reset()

app_data_ptr new_reset ( cargo_type  type)

◆ sort_app_data()

void sort_app_data ( app_data_ptr  x[],
int  n 
)

Sort an array of app_data pointers.

TODO: Maybe replace with Dewar's improved heap sort? Quicksort is not optimal here, since the log is typically already almost or completely sorted.