18 #ifndef MYSQL_SERVICE_MYSQL_STRING_INCLUDED
19 #define MYSQL_SERVICE_MYSQL_STRING_INCLUDED
21 #ifndef MYSQL_ABI_CHECK
29 typedef void *mysql_string_iterator_handle;
30 typedef void *mysql_string_handle;
33 int (*mysql_string_convert_to_char_ptr_type)
34 (mysql_string_handle,
const char *,
char *,
unsigned int,
int *);
35 mysql_string_iterator_handle (*mysql_string_get_iterator_type)
36 (mysql_string_handle);
37 int (*mysql_string_iterator_next_type)(mysql_string_iterator_handle);
38 int (*mysql_string_iterator_isupper_type)(mysql_string_iterator_handle);
39 int (*mysql_string_iterator_islower_type)(mysql_string_iterator_handle);
40 int (*mysql_string_iterator_isdigit_type)(mysql_string_iterator_handle);
41 mysql_string_handle (*mysql_string_to_lowercase_type)(mysql_string_handle);
42 void (*mysql_string_free_type)(mysql_string_handle);
43 void (*mysql_string_iterator_free_type)(mysql_string_iterator_handle);
44 } *mysql_string_service;
46 #ifdef MYSQL_DYNAMIC_PLUGIN
48 #define mysql_string_convert_to_char_ptr(string_handle, charset_name, \
49 buffer, buffer_size, error) \
50 mysql_string_service->mysql_string_convert_to_char_ptr_type \
51 (string_handle, charset_name, buffer, \
54 #define mysql_string_get_iterator(string_handle) \
55 mysql_string_service->mysql_string_get_iterator_type(string_handle)
57 #define mysql_string_iterator_next(iterator_handle) \
58 mysql_string_service->mysql_string_iterator_next_type(iterator_handle)
60 #define mysql_string_iterator_isupper(iterator_handle) \
61 mysql_string_service->mysql_string_iterator_isupper_type \
64 #define mysql_string_iterator_islower(iterator_handle) \
65 mysql_string_service->mysql_string_iterator_islower_type \
68 #define mysql_string_iterator_isdigit(iterator_handle) \
69 mysql_string_service->mysql_string_iterator_isdigit_type \
72 #define mysql_string_to_lowercase(string_handle) \
73 mysql_string_service->mysql_string_to_lowercase_type(string_handle)
75 #define mysql_string_free(mysql_string_handle) \
76 mysql_string_service->mysql_string_free_type(mysql_string_handle)
78 #define mysql_string_iterator_free(mysql_string_iterator_handle) \
79 mysql_string_service->mysql_string_iterator_free_type \
80 (mysql_string_iterator_handle)
84 int mysql_string_convert_to_char_ptr(mysql_string_handle string_handle,
85 const char *charset_name,
char *buffer,
86 unsigned int buffer_size,
int *error);
89 mysql_string_iterator_handle mysql_string_get_iterator(mysql_string_handle
95 int mysql_string_iterator_next(mysql_string_iterator_handle iterator_handle);
101 int mysql_string_iterator_isupper(mysql_string_iterator_handle iterator_handle);
107 int mysql_string_iterator_islower(mysql_string_iterator_handle iterator_handle);
113 int mysql_string_iterator_isdigit(mysql_string_iterator_handle iterator_handle);
116 mysql_string_handle mysql_string_to_lowercase(mysql_string_handle
120 void mysql_string_free(mysql_string_handle);
126 void mysql_string_iterator_free(mysql_string_iterator_handle);