libdrizzle Public API Documentation

libdrizzle/query.h
Go to the documentation of this file.
00001 /*
00002  * Drizzle Client & Protocol Library
00003  *
00004  * Copyright (C) 2008 Eric Day (eday@oddments.org)
00005  * All rights reserved.
00006  *
00007  * Use and distribution licensed under the BSD license.  See
00008  * the COPYING file in this directory for full text.
00009  */
00010 
00016 #ifndef __DRIZZLE_QUERY_H
00017 #define __DRIZZLE_QUERY_H
00018 
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022 
00046 DRIZZLE_API
00047 drizzle_result_st *drizzle_query(drizzle_con_st *con, drizzle_result_st *result,
00048                                  const char *query, size_t size,
00049                                  drizzle_return_t *ret_ptr);
00050 
00054 DRIZZLE_API
00055 drizzle_result_st *drizzle_query_str(drizzle_con_st *con,
00056                                      drizzle_result_st *result,
00057                                      const char *query,
00058                                      drizzle_return_t *ret_ptr);
00059 
00063 DRIZZLE_API
00064 drizzle_result_st *drizzle_query_inc(drizzle_con_st *con,
00065                                      drizzle_result_st *result,
00066                                      const char *query, size_t size,
00067                                      size_t total, drizzle_return_t *ret_ptr);
00068 
00072 DRIZZLE_API
00073 drizzle_query_st *drizzle_query_add(drizzle_st *drizzle,
00074                                     drizzle_query_st *query,
00075                                     drizzle_con_st *con,
00076                                     drizzle_result_st *result,
00077                                     const char *query_string, size_t size,
00078                                     drizzle_query_options_t options,
00079                                     void *context);
00080 
00084 DRIZZLE_API
00085 drizzle_query_st *drizzle_query_create(drizzle_st *drizzle,
00086                                        drizzle_query_st *query);
00087 
00091 DRIZZLE_API
00092 void drizzle_query_free(drizzle_query_st *query);
00093 
00097 DRIZZLE_API
00098 void drizzle_query_free_all(drizzle_st *drizzle);
00099 
00103 DRIZZLE_API
00104 drizzle_con_st *drizzle_query_con(drizzle_query_st *query);
00105 
00109 DRIZZLE_API
00110 void drizzle_query_set_con(drizzle_query_st *query, drizzle_con_st *con);
00111 
00115 DRIZZLE_API
00116 drizzle_result_st *drizzle_query_result(drizzle_query_st *query);
00117 
00121 DRIZZLE_API
00122 void drizzle_query_set_result(drizzle_query_st *query,
00123                               drizzle_result_st *result);
00124 
00128 DRIZZLE_API
00129 char *drizzle_query_string(drizzle_query_st *query, size_t *size);
00130 
00134 DRIZZLE_API
00135 void drizzle_query_set_string(drizzle_query_st *query, const char *string,
00136                               size_t size);
00137 
00141 DRIZZLE_API
00142 drizzle_query_options_t drizzle_query_options(drizzle_query_st *query);
00143 
00147 DRIZZLE_API
00148 void drizzle_query_set_options(drizzle_query_st *query,
00149                                drizzle_query_options_t options);
00150 
00154 DRIZZLE_API
00155 void drizzle_query_add_options(drizzle_query_st *query,
00156                                drizzle_query_options_t options);
00157 
00161 DRIZZLE_API
00162 void drizzle_query_remove_options(drizzle_query_st *query,
00163                                   drizzle_query_options_t options);
00164 
00168 DRIZZLE_API
00169 void *drizzle_query_context(drizzle_query_st *query);
00170 
00174 DRIZZLE_API
00175 void drizzle_query_set_context(drizzle_query_st *query, void *context);
00176 
00180 DRIZZLE_API
00181 void drizzle_query_set_context_free_fn(drizzle_query_st *query,
00182                                        drizzle_query_context_free_fn *function);
00183 
00187 DRIZZLE_API
00188 drizzle_query_st *drizzle_query_run(drizzle_st *drizzle,
00189                                     drizzle_return_t *ret_ptr);
00190 
00197 DRIZZLE_API
00198 drizzle_return_t drizzle_query_run_all(drizzle_st *drizzle);
00199 
00200 /*
00201  * Escape a string or encode a string in hexadecimal. The return value is the
00202  * size of the output string in to.
00203  */
00204 DRIZZLE_API
00205 size_t drizzle_escape_string(char *to, const char *from, size_t from_size);
00206 DRIZZLE_API
00207 size_t drizzle_hex_string(char *to, const char *from, size_t from_size);
00208 
00211 #ifdef __cplusplus
00212 }
00213 #endif
00214 
00215 #endif /* __DRIZZLE_QUERY_H */