From bcd32125d02f9c26be2b6d6accb264a1a7f64dd7 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 14 May 2007 17:10:46 +0000 Subject: [PATCH] dox git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5176 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- docs/Doxygen.conf | 2 +- .../{switch_core.h => switch_core_pvt.h} | 0 src/include/switch_apr.h | 13 +- src/include/switch_core_event_hook.h | 2 +- src/include/switch_regex.h | 2 +- src/include/switch_scheduler.h | 2 +- src/include/switch_sqlite.h | 1707 ----------------- src/switch_core.c | 2 +- src/switch_core_asr.c | 2 +- src/switch_core_codec.c | 2 +- src/switch_core_db.c | 2 +- src/switch_core_directory.c | 2 +- src/switch_core_event_hook.c | 2 +- src/switch_core_file.c | 2 +- src/switch_core_hash.c | 2 +- src/switch_core_io.c | 2 +- src/switch_core_media_bug.c | 2 +- src/switch_core_memory.c | 2 +- src/switch_core_port_allocator.c | 2 +- src/switch_core_rwlock.c | 2 +- src/switch_core_session.c | 2 +- src/switch_core_speech.c | 2 +- src/switch_core_sqldb.c | 2 +- src/switch_core_state_machine.c | 2 +- src/switch_core_timer.c | 2 +- 25 files changed, 28 insertions(+), 1736 deletions(-) rename src/include/private/{switch_core.h => switch_core_pvt.h} (100%) delete mode 100644 src/include/switch_sqlite.h diff --git a/docs/Doxygen.conf b/docs/Doxygen.conf index 53f2f5f0b4..df36484b69 100644 --- a/docs/Doxygen.conf +++ b/docs/Doxygen.conf @@ -83,7 +83,7 @@ WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = ../src ../src/include +INPUT = ../src ../src/include ../src/include/private FILE_PATTERNS = *.c \ *.cc \ *.cxx \ diff --git a/src/include/private/switch_core.h b/src/include/private/switch_core_pvt.h similarity index 100% rename from src/include/private/switch_core.h rename to src/include/private/switch_core_pvt.h diff --git a/src/include/switch_apr.h b/src/include/switch_apr.h index 91e3ed0a60..b82929affc 100644 --- a/src/include/switch_apr.h +++ b/src/include/switch_apr.h @@ -167,7 +167,7 @@ SWITCH_DECLARE(switch_hash_index_t *) switch_hash_first(switch_memory_pool_t *p, /** * Continue iterating over the entries in a hash table. - * @param hi The iteration state + * @param ht The iteration state * @return a pointer to the updated iteration state. NULL if there are no more * entries. */ @@ -520,7 +520,7 @@ SWITCH_DECLARE(switch_status_t) switch_uuid_parse(switch_uuid_t * uuid, const ch * create a FIFO queue * @param queue The new queue * @param queue_capacity maximum size of the queue - * @param a pool to allocate queue from + * @param pool a pool to allocate queue from */ SWITCH_DECLARE(switch_status_t) switch_queue_create(switch_queue_t ** queue, unsigned int queue_capacity, switch_memory_pool_t *pool); @@ -684,7 +684,7 @@ SWITCH_DECLARE(switch_status_t) switch_file_seek(switch_file_t * thefile, switch /** * Close the specified file. - * @param file The file descriptor to close. + * @param thefile The file descriptor to close. */ SWITCH_DECLARE(switch_status_t) switch_file_close(switch_file_t * thefile); @@ -771,7 +771,7 @@ SWITCH_DECLARE(switch_status_t) switch_threadattr_stacksize_set(switch_threadatt /** * Create and initialize a new threadattr variable * @param new_attr The newly created threadattr. - * @param cont The pool to use + * @param pool The pool to use */ SWITCH_DECLARE(switch_status_t) switch_threadattr_create(switch_threadattr_t ** new_attr, switch_memory_pool_t *pool); @@ -904,7 +904,7 @@ SWITCH_DECLARE(switch_status_t) switch_socket_listen(switch_socket_t * sock, int * made the connection request. This is the socket which should * be used for all future communication. * @param sock The socket we are listening on. - * @param connection_pool The pool for the new socket. + * @param pool The pool for the new socket. */ SWITCH_DECLARE(switch_status_t) switch_socket_accept(switch_socket_t ** new_sock, switch_socket_t * sock, switch_memory_pool_t *pool); @@ -943,7 +943,7 @@ SWITCH_DECLARE(switch_status_t) switch_sockaddr_ip_get(char **addr, switch_socka * isn't NULL and APR_HAVE_IPV6; mutually exclusive * with APR_IPV4_ADDR_OK * - * @param p The pool for the apr_sockaddr_t and associated storage. + * @param pool The pool for the apr_sockaddr_t and associated storage. */ SWITCH_DECLARE(switch_status_t) switch_sockaddr_info_get(switch_sockaddr_t ** sa, const char *hostname, int32_t family, switch_port_t port, int32_t flags, switch_memory_pool_t *pool); @@ -1148,7 +1148,6 @@ SWITCH_DECLARE(switch_status_t) switch_socket_create_pollfd(switch_pollfd_t ** p -/** @} */ /** @} */ SWITCH_END_EXTERN_C diff --git a/src/include/switch_core_event_hook.h b/src/include/switch_core_event_hook.h index b9bab028f9..8ed8c0ac7b 100644 --- a/src/include/switch_core_event_hook.h +++ b/src/include/switch_core_event_hook.h @@ -226,7 +226,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_event_hook_add_write_frame(switch_co /*! \brief Add an event hook to be executed when a session writes a video frame \param session session to bind hook to - \param write_frame hook to bind + \param video_write_frame hook to bind \return SWITCH_STATUS_SUCCESS on suceess */ SWITCH_DECLARE(switch_status_t) switch_core_event_hook_add_video_write_frame(switch_core_session_t *session, switch_video_write_frame_hook_t video_write_frame); diff --git a/src/include/switch_regex.h b/src/include/switch_regex.h index 5b6b075a19..aad80f3b65 100644 --- a/src/include/switch_regex.h +++ b/src/include/switch_regex.h @@ -36,7 +36,7 @@ SWITCH_BEGIN_EXTERN_C /** - * @defgroup switch_regex + * @defgroup switch_regex Regular Expressions * @ingroup FREESWITCH * @{ */ diff --git a/src/include/switch_scheduler.h b/src/include/switch_scheduler.h index af731c9334..d1477d0139 100644 --- a/src/include/switch_scheduler.h +++ b/src/include/switch_scheduler.h @@ -51,7 +51,7 @@ SWITCH_BEGIN_EXTERN_C /*! \brief Schedule a task in the future - \param runtime the time in epoch seconds to execute the task. + \param task_runtime the time in epoch seconds to execute the task. \param func the callback function to execute when the task is executed. \param desc an arbitrary description of the task. \param group a group id tag to link multiple tasks to a single entity. diff --git a/src/include/switch_sqlite.h b/src/include/switch_sqlite.h deleted file mode 100644 index 1fc69713df..0000000000 --- a/src/include/switch_sqlite.h +++ /dev/null @@ -1,1707 +0,0 @@ -/* - * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application - * Copyright (C) 2005/2006, Anthony Minessale II - * - * Version: MPL 1.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application - * - * The Initial Developer of the Original Code is - * Anthony Minessale II - * Portions created by the Initial Developer are Copyright (C) - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Anthony Minessale II - * Michael Jerris - * - * switch_sqlite.h -- Sqlite Header - * - */ -/*! \file switch_sqlite.h - \brief Sqlite Header -*/ -#ifndef SWITCH_SQLITE_H -#define SWITCH_SQLITE_H - -SWITCH_BEGIN_EXTERN_C -#include -/** - * @defgroup switch_sqlite_top Brought To You By SQLite - * @ingroup FREESWITCH - * @{ - */ -/** - * @defgroup switch_sqlite Database Routines - * @ingroup switch_sqlite_top - * @{ - */ -/** - * Each open sqlite database is represented by an instance of the - * following opaque structure. -*/ - typedef sqlite3 switch_core_db_t; -typedef sqlite3_stmt switch_core_db_stmt_t; -/** - * Aggregate functions use the following routine to allocate - * a structure for storing their state. The first time this routine - * is called for a particular aggregate, a new structure of size nBytes - * is allocated, zeroed, and returned. On subsequent calls (for the - * same aggregate instance) the same buffer is returned. The implementation - * of the aggregate can use the returned buffer to accumulate data. - * - * The buffer allocated is freed automatically by SQLite. - */ -DoxyDefine(void *switch_core_db_aggregate_context(sqlite3_context *, int nBytes);) -#define switch_core_db_aggregate_context sqlite3_aggregate_context -/** - * /return the number of calls to xStep for a particular - * aggregate function instance. The current call to xStep counts so this - * routine always returns at least 1. - */ -DoxyDefine(int switch_core_db_aggregate_count(sqlite3_context *);) -#define switch_core_db_aggregate_count sqlite3_aggregate_count -/** - * In the SQL strings input to switch_core_db_prepare(), - * one or more literals can be replace by parameters "?" or ":AAA" or - * "$VVV" where AAA is an identifer and VVV is a variable name according - * to the syntax rules of the TCL programming language. - * The value of these parameters (also called "host parameter names") can - * be set using the routines listed below. - * - * In every case, the first parameter is a pointer to the sqlite3_stmt - * structure returned from switch_core_db_prepare(). The second parameter is the - * index of the parameter. The first parameter as an index of 1. For - * named parameters (":AAA" or "$VVV") you can use - * sqlite3_bind_parameter_index() to get the correct index value given - * the parameters name. If the same named parameter occurs more than - * once, it is assigned the same index each time. - * - * The fifth parameter to sqlite3_bind_blob(), sqlite3_bind_text(), and - * sqlite3_bind_text16() is a destructor used to dispose of the BLOB or - * text after SQLite has finished with it. If the fifth argument is the - * special value SQLITE_STATIC, then the library assumes that the information - * is in static, unmanaged space and does not need to be freed. If the - * fifth argument has the value SQLITE_TRANSIENT, then SQLite makes its - * own private copy of the data. - * - * The sqlite3_bind_* routine must be called before switch_core_db_step() after - * an switch_core_db_prepare() or sqlite3_reset(). Unbound parameterss are - * interpreted as NULL. - */ -DoxyDefine(int switch_core_db_bind_blob(sqlite3_stmt *, int, const void *, int n, void (*)(void *));) -#define switch_core_db_bind_blob sqlite3_bind_blob -/** - * In the SQL strings input to switch_core_db_prepare(), - * one or more literals can be replace by parameters "?" or ":AAA" or - * "$VVV" where AAA is an identifer and VVV is a variable name according - * to the syntax rules of the TCL programming language. - * The value of these parameters (also called "host parameter names") can - * be set using the routines listed below. - * - * In every case, the first parameter is a pointer to the sqlite3_stmt - * structure returned from switch_core_db_prepare(). The second parameter is the - * index of the parameter. The first parameter as an index of 1. For - * named parameters (":AAA" or "$VVV") you can use - * sqlite3_bind_parameter_index() to get the correct index value given - * the parameters name. If the same named parameter occurs more than - * once, it is assigned the same index each time. - * - * The sqlite3_bind_* routine must be called before switch_core_db_step() after - * an switch_core_db_prepare() or sqlite3_reset(). Unbound parameterss are - * interpreted as NULL. - */ -DoxyDefine(int switch_core_db_bind_double(sqlite3_stmt *, int, double);) -#define switch_core_db_bind_double sqlite3_bind_double -/** - * In the SQL strings input to switch_core_db_prepare(), - * one or more literals can be replace by parameters "?" or ":AAA" or - * "$VVV" where AAA is an identifer and VVV is a variable name according - * to the syntax rules of the TCL programming language. - * The value of these parameters (also called "host parameter names") can - * be set using the routines listed below. - * - * In every case, the first parameter is a pointer to the sqlite3_stmt - * structure returned from switch_core_db_prepare(). The second parameter is the - * index of the parameter. The first parameter as an index of 1. For - * named parameters (":AAA" or "$VVV") you can use - * sqlite3_bind_parameter_index() to get the correct index value given - * the parameters name. If the same named parameter occurs more than - * once, it is assigned the same index each time. - * - * The sqlite3_bind_* routine must be called before switch_core_db_step() after - * an switch_core_db_prepare() or sqlite3_reset(). Unbound parameterss are - * interpreted as NULL. - */ -DoxyDefine(int switch_core_db_bind_int(sqlite3_stmt *, int, int);) -#define switch_core_db_bind_int sqlite3_bind_int -/** - * In the SQL strings input to switch_core_db_prepare(), - * one or more literals can be replace by parameters "?" or ":AAA" or - * "$VVV" where AAA is an identifer and VVV is a variable name according - * to the syntax rules of the TCL programming language. - * The value of these parameters (also called "host parameter names") can - * be set using the routines listed below. - * - * In every case, the first parameter is a pointer to the sqlite3_stmt - * structure returned from switch_core_db_prepare(). The second parameter is the - * index of the parameter. The first parameter as an index of 1. For - * named parameters (":AAA" or "$VVV") you can use - * sqlite3_bind_parameter_index() to get the correct index value given - * the parameters name. If the same named parameter occurs more than - * once, it is assigned the same index each time. - * - * The sqlite3_bind_* routine must be called before switch_core_db_step() after - * an switch_core_db_prepare() or sqlite3_reset(). Unbound parameterss are - * interpreted as NULL. - */ -DoxyDefine(int switch_core_db_bind_int64(sqlite3_stmt *, int, sqlite_int64);) -#define switch_core_db_bind_int64 sqlite3_bind_int64 -/** - * In the SQL strings input to switch_core_db_prepare(), - * one or more literals can be replace by parameters "?" or ":AAA" or - * "$VVV" where AAA is an identifer and VVV is a variable name according - * to the syntax rules of the TCL programming language. - * The value of these parameters (also called "host parameter names") can - * be set using the routines listed below. - * - * In every case, the first parameter is a pointer to the sqlite3_stmt - * structure returned from switch_core_db_prepare(). The second parameter is the - * index of the parameter. The first parameter as an index of 1. For - * named parameters (":AAA" or "$VVV") you can use - * sqlite3_bind_parameter_index() to get the correct index value given - * the parameters name. If the same named parameter occurs more than - * once, it is assigned the same index each time. - * - * The sqlite3_bind_* routine must be called before switch_core_db_step() after - * an switch_core_db_prepare() or sqlite3_reset(). Unbound parameterss are - * interpreted as NULL. - */ -DoxyDefine(int switch_core_db_bind_null(sqlite3_stmt *, int);) -#define switch_core_db_bind_null sqlite3_bind_null -/** - * In the SQL strings input to switch_core_db_prepare(), - * one or more literals can be replace by parameters "?" or ":AAA" or - * "$VVV" where AAA is an identifer and VVV is a variable name according - * to the syntax rules of the TCL programming language. - * The value of these parameters (also called "host parameter names") can - * be set using the routines listed below. - * - * In every case, the first parameter is a pointer to the sqlite3_stmt - * structure returned from switch_core_db_prepare(). The second parameter is the - * index of the parameter. The first parameter as an index of 1. For - * named parameters (":AAA" or "$VVV") you can use - * sqlite3_bind_parameter_index() to get the correct index value given - * the parameters name. If the same named parameter occurs more than - * once, it is assigned the same index each time. - * - * The fifth parameter to sqlite3_bind_blob(), sqlite3_bind_text(), and - * sqlite3_bind_text16() is a destructor used to dispose of the BLOB or - * text after SQLite has finished with it. If the fifth argument is the - * special value SQLITE_STATIC, then the library assumes that the information - * is in static, unmanaged space and does not need to be freed. If the - * fifth argument has the value SQLITE_TRANSIENT, then SQLite makes its - * own private copy of the data. - * - * The sqlite3_bind_* routine must be called before switch_core_db_step() after - * an switch_core_db_prepare() or sqlite3_reset(). Unbound parameterss are - * interpreted as NULL. - */ -DoxyDefine(int switch_core_db_bind_text(sqlite3_stmt *, int, const char *, int n, void (*)(void *));) -#define switch_core_db_bind_text sqlite3_bind_text -/** - * In the SQL strings input to switch_core_db_prepare(), - * one or more literals can be replace by parameters "?" or ":AAA" or - * "$VVV" where AAA is an identifer and VVV is a variable name according - * to the syntax rules of the TCL programming language. - * The value of these parameters (also called "host parameter names") can - * be set using the routines listed below. - * - * In every case, the first parameter is a pointer to the sqlite3_stmt - * structure returned from switch_core_db_prepare(). The second parameter is the - * index of the parameter. The first parameter as an index of 1. For - * named parameters (":AAA" or "$VVV") you can use - * sqlite3_bind_parameter_index() to get the correct index value given - * the parameters name. If the same named parameter occurs more than - * once, it is assigned the same index each time. - * - * The fifth parameter to sqlite3_bind_blob(), sqlite3_bind_text(), and - * sqlite3_bind_text16() is a destructor used to dispose of the BLOB or - * text after SQLite has finished with it. If the fifth argument is the - * special value SQLITE_STATIC, then the library assumes that the information - * is in static, unmanaged space and does not need to be freed. If the - * fifth argument has the value SQLITE_TRANSIENT, then SQLite makes its - * own private copy of the data. - * - * The sqlite3_bind_* routine must be called before switch_core_db_step() after - * an switch_core_db_prepare() or sqlite3_reset(). Unbound parameterss are - * interpreted as NULL. - */ -DoxyDefine(int switch_core_db_bind_text16(sqlite3_stmt *, int, const void *, int, void (*)(void *));) -#define switch_core_db_bind_text16 sqlite3_bind_text16 -/** - * In the SQL strings input to switch_core_db_prepare(), - * one or more literals can be replace by parameters "?" or ":AAA" or - * "$VVV" where AAA is an identifer and VVV is a variable name according - * to the syntax rules of the TCL programming language. - * The value of these parameters (also called "host parameter names") can - * be set using the routines listed below. - * - * In every case, the first parameter is a pointer to the sqlite3_stmt - * structure returned from switch_core_db_prepare(). The second parameter is the - * index of the parameter. The first parameter as an index of 1. For - * named parameters (":AAA" or "$VVV") you can use - * sqlite3_bind_parameter_index() to get the correct index value given - * the parameters name. If the same named parameter occurs more than - * once, it is assigned the same index each time. - * - * The sqlite3_bind_* routine must be called before switch_core_db_step() after - * an switch_core_db_prepare() or sqlite3_reset(). Unbound parameterss are - * interpreted as NULL. - */ -DoxyDefine(int switch_core_db_bind_value(sqlite3_stmt *, int, const sqlite3_value *);) -#define switch_core_db_bind_value sqlite3_bind_value -/** - * @return The number of parameters in a compiled SQL statement. - * @remark This routine was added to support DBD::SQLite. - */ -DoxyDefine(int switch_core_db_bind_parameter_count(sqlite3_stmt *);) -#define switch_core_db_bind_parameter_count sqlite3_bind_parameter_count -/** - * @return the index of a parameter with the given name. If no parameter with the - * given name is found, return 0. - * @remark The name must match exactly. - */ -DoxyDefine(int switch_core_db_bind_parameter_index(sqlite3_stmt *, const char *zName);) -#define switch_core_db_bind_parameter_index sqlite3_bind_parameter_index -/** - * @return the name of the i-th parameter. - * @remark Ordinary parameters "?" are - * nameless and a NULL is returned. For parameters of the form :AAA or - * $VVV the complete text of the parameter name is returned, including - * the initial ":" or "$". NULL is returned if the index is out of range. - */ -DoxyDefine(const char *switch_core_db_bind_parameter_name(sqlite3_stmt *, int);) -#define switch_core_db_bind_parameter_name sqlite3_bind_parameter_name -/** - * This routine identifies a callback function that is invoked - * whenever an attempt is made to open a database table that is - * currently locked by another process or thread. If the busy callback - * is NULL, then sqlite3_exec() returns SQLITE_BUSY immediately if - * it finds a locked table. If the busy callback is not NULL, then - * sqlite3_exec() invokes the callback with three arguments. The - * second argument is the name of the locked table and the third - * argument is the number of times the table has been busy. If the - * busy callback returns 0, then sqlite3_exec() immediately returns - * SQLITE_BUSY. If the callback returns non-zero, then sqlite3_exec() - * tries to open the table again and the cycle repeats. - * - * The default busy callback is NULL. - * - * Sqlite is re-entrant, so the busy handler may start a new query. - * (It is not clear why anyone would every want to do this, but it - * is allowed, in theory.) But the busy handler may not close the - * database. Closing the database from a busy handler will delete - * data structures out from under the executing query and will - * probably result in a coredump. - */ -DoxyDefine(int switch_core_db_busy_handler(switch_core_db *, int (*)(void *, int), void *);) -#define switch_core_db_busy_handler sqlite3_busy_handler -/** - * This routine sets a busy handler that sleeps for a while when a - * table is locked. The handler will sleep multiple times until - * at least "ms" milleseconds of sleeping have been done. After - * "ms" milleseconds of sleeping, the handler returns 0 which - * causes sqlite3_exec() to return SQLITE_BUSY. - * - * Calling this routine with an argument less than or equal to zero - * turns off all busy handlers. - */ -DoxyDefine(int switch_core_db_busy_timeout(switch_core_db *, int ms);) -#define switch_core_db_busy_timeout sqlite3_busy_timeout -/** - * This function returns the number of database rows that were changed - * (or inserted or deleted) by the most recent called sqlite3_exec(). - * - * All changes are counted, even if they were later undone by a - * ROLLBACK or ABORT. Except, changes associated with creating and - * dropping tables are not counted. - * - * If a callback invokes sqlite3_exec() recursively, then the changes - * in the inner, recursive call are counted together with the changes - * in the outer call. - * - * SQLite implements the command "DELETE FROM table" without a WHERE clause - * by dropping and recreating the table. (This is much faster than going - * through and deleting individual elements form the table.) Because of - * this optimization, the change count for "DELETE FROM table" will be - * zero regardless of the number of elements that were originally in the - * table. To get an accurate count of the number of rows deleted, use - * "DELETE FROM table WHERE 1" instead. - */ -DoxyDefine(int switch_core_db_changes(switch_core_db *);) -#define switch_core_db_changes sqlite3_changes -/** - * A function to close the database. - * - * Call this function with a pointer to a structure that was previously - * returned from sqlite3_open() and the corresponding database will by closed. - * - * All SQL statements prepared using switch_core_db_prepare() - * must be deallocated using sqlite3_finalize() before - * this routine is called. Otherwise, SQLITE_BUSY is returned and the - * database connection remains open. - */ -DoxyDefine(int switch_core_db_close(switch_core_db *);) -#define switch_core_db_close sqlite3_close -/** - * To avoid having to register all collation sequences before a database - * can be used, a single callback function may be registered with the - * database handle to be called whenever an undefined collation sequence is - * required. - * - * The function is passed the names of undefined collation sequences as - * strings encoded in UTF-8. A call to the function replaces any existing callback. - * - * When the user-function is invoked, the first argument passed is a copy - * of the second argument to sqlite3_collation_needed(). The second argument is the database - * handle. The third argument is one of SQLITE_UTF8, SQLITE_UTF16BE or - * SQLITE_UTF16LE, indicating the most desirable form of the collation - * sequence function required. The fourth parameter is the name of the - * required collation sequence. - * - * The collation sequence is returned to SQLite by a collation-needed - * callback using the sqlite3_create_collation() API, described above. - */ -DoxyDefine(int switch_core_db_collation_needed(switch_core_db *, void *, void (*)(void *, switch_core_db *, int eTextRep, const char *) - );) -#define switch_core_db_collation_needed sqlite3_collation_needed -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. - * - * @param stmt a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) - * - * @param iCol the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * @remark If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * @return the value of a BLOB. - */ -DoxyDefine(const void *switch_core_db_column_blob(sqlite3_stmt * stmt, int iCol);) -#define switch_core_db_column_blob sqlite3_column_blob -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. In every - * case the first parameter is a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) and - * the second argument is the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * Return the number of bytes in a BLOB value or the number of bytes in a - * TEXT value represented as UTF-8. The "\000" terminator is included in the - * byte count for TEXT values. - */ -DoxyDefine(int switch_core_db_column_bytes(sqlite3_stmt *, int iCol);) -#define switch_core_db_column_bytes sqlite3_column_bytes -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. In every - * case the first parameter is a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) and - * the second argument is the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * Return the number of bytes in a BLOB value or the number of bytes in a - * TEXT value represented as UTF-16. The "\u0000" terminator is included in - * the byte count for TEXT values. - */ -DoxyDefine(int switch_core_db_column_bytes16(sqlite3_stmt *, int iCol);) -#define switch_core_db_column_bytes16 sqlite3_column_bytes16 -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. In every - * case the first parameter is a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) and - * the second argument is the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * Return a FLOAT value. - */ -DoxyDefine(double switch_core_db_column_double(sqlite3_stmt *, int iCol);) -#define switch_core_db_column_double sqlite3_column_double -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. In every - * case the first parameter is a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) and - * the second argument is the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * Return an INTEGER value in the host computer's native integer representation. - * This might be either a 32- or 64-bit integer depending on the host. - */ -DoxyDefine(int switch_core_db_column_int(sqlite3_stmt *, int iCol);) -#define switch_core_db_column_int sqlite3_column_int -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. In every - * case the first parameter is a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) and - * the second argument is the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * Return an INTEGER value as a 64-bit signed integer. - */ - DoxyDefine(sqlite_int64 switch_core_db_column_int64(sqlite3_stmt *, int iCol);) -#define switch_core_db_column_int64 sqlite3_column_int64 -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. In every - * case the first parameter is a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) and - * the second argument is the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * Return the value as UTF-8 text. - */ -DoxyDefine(const unsigned char *switch_core_db_column_text(sqlite3_stmt *, int iCol);) -#define switch_core_db_column_text sqlite3_column_text -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. In every - * case the first parameter is a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) and - * the second argument is the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * Return the value as UTF-16 text. - */ -DoxyDefine(const void *switch_core_db_column_text16(sqlite3_stmt *, int iCol);) -#define switch_core_db_column_text16 sqlite3_column_text16 -/** - * The next group of routines returns information about the information - * in a single column of the current result row of a query. In every - * case the first parameter is a pointer to the SQL statement that is being - * executed (the sqlite_stmt* that was returned from switch_core_db_prepare()) and - * the second argument is the index of the column for which information - * should be returned. iCol is zero-indexed. The left-most column as an - * index of 0. - * - * If the SQL statement is not currently point to a valid row, or if the - * the colulmn index is out of range, the result is undefined. - * - * These routines attempt to convert the value where appropriate. For - * example, if the internal representation is FLOAT and a text result - * is requested, sprintf() is used internally to do the conversion - * automatically. The following table details the conversions that - * are applied: - * - * Internal Type Requested Type Conversion - * ------------- -------------- -------------------------- - * NULL INTEGER Result is 0 - * NULL FLOAT Result is 0.0 - * NULL TEXT Result is an empty string - * NULL BLOB Result is a zero-length BLOB - * INTEGER FLOAT Convert from integer to float - * INTEGER TEXT ASCII rendering of the integer - * INTEGER BLOB Same as for INTEGER->TEXT - * FLOAT INTEGER Convert from float to integer - * FLOAT TEXT ASCII rendering of the float - * FLOAT BLOB Same as FLOAT->TEXT - * TEXT INTEGER Use atoi() - * TEXT FLOAT Use atof() - * TEXT BLOB No change - * BLOB INTEGER Convert to TEXT then use atoi() - * BLOB FLOAT Convert to TEXT then use atof() - * BLOB TEXT Add a "\000" terminator if needed - * - * ReturnS the datatype of the result. This is one of - * SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL. - */ -DoxyDefine(int switch_core_db_column_type(sqlite3_stmt *, int iCol);) -#define switch_core_db_column_type sqlite3_column_type -/** - * The first parameter is a compiled SQL statement. This function returns - * the column heading for the Nth column of that statement, where N is the - * second function parameter. The string returned is UTF-8. - */ -DoxyDefine(const char *switch_core_db_column_name(sqlite3_stmt *, int);) -#define switch_core_db_column_name sqlite3_column_name -/** - * Return the number of columns in the result set returned by the compiled - * SQL statement. This routine returns 0 if pStmt is an SQL statement - * that does not return data (for example an UPDATE). - */ -DoxyDefine(int switch_core_db_column_count(sqlite3_stmt * pStmt);) -#define switch_core_db_column_count sqlite3_column_count -/** - * The first parameter is a compiled SQL statement. If this statement - * is a SELECT statement, the Nth column of the returned result set - * of the SELECT is a table column then the declared type of the table - * column is returned. If the Nth column of the result set is not at table - * column, then a NULL pointer is returned. The returned string is always - * UTF-8 encoded. For example, in the database schema: - * - * CREATE TABLE t1(c1 VARIANT); - * - * And the following statement compiled: - * - * SELECT c1 + 1, 0 FROM t1; - * - * Then this routine would return the string "VARIANT" for the second - * result column (i==1), and a NULL pointer for the first result column - * (i==0). - */ -DoxyDefine(const char *switch_core_db_column_decltype(sqlite3_stmt *, int i);) -#define switch_core_db_column_decltype sqlite3_column_decltype -/** - * The first parameter is a compiled SQL statement. If this statement - * is a SELECT statement, the Nth column of the returned result set - * of the SELECT is a table column then the declared type of the table - * column is returned. If the Nth column of the result set is not at table - * column, then a NULL pointer is returned. The returned string is always - * UTF-16 encoded. For example, in the database schema: - * - * CREATE TABLE t1(c1 INTEGER); - * - * And the following statement compiled: - * - * SELECT c1 + 1, 0 FROM t1; - * - * Then this routine would return the string "INTEGER" for the second - * result column (i==1), and a NULL pointer for the first result column - * (i==0). - */ -DoxyDefine(const void *switch_core_db_column_decltype16(sqlite3_stmt *, int);) -#define switch_core_db_column_decltype16 sqlite3_column_decltype16 -/** - * Register a callback function to be invoked whenever a new transaction - * is committed. The pArg argument is passed through to the callback. - * callback. If the callback function returns non-zero, then the commit - * is converted into a rollback. - * - * If another function was previously registered, its pArg value is returned. - * Otherwise NULL is returned. - * - * Registering a NULL function disables the callback. - * - ****** THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE ****** - */ -DoxyDefine(void *switch_core_db_commit_hook(switch_core_db *, int (*)(void *), void *);) -#define switch_core_db_commit_hook sqlite3_commit_hook -/** - * This functions return true if the given input string comprises - * one or more complete SQL statements. The parameter must be a nul-terminated - * UTF-8 string. - * - * The algorithm is simple. If the last token other than spaces - * and comments is a semicolon, then return true. otherwise return - * false. - */ -DoxyDefine(int switch_core_db_complete(const char *sql);) -#define switch_core_db_complete sqlite3_complete -/** - * This function is used to add new collation sequences to the - * sqlite3 handle specified as the first argument. - * - * The name of the new collation sequence is specified as a UTF-8 string - * and the name is passed as the second function argument. - * - * The third argument must be one of the constants SQLITE_UTF8, - * SQLITE_UTF16LE or SQLITE_UTF16BE, indicating that the user-supplied - * routine expects to be passed pointers to strings encoded using UTF-8, - * UTF-16 little-endian or UTF-16 big-endian respectively. - * - * A pointer to the user supplied routine must be passed as the fifth - * argument. If it is NULL, this is the same as deleting the collation - * sequence (so that SQLite cannot call it anymore). Each time the user - * supplied function is invoked, it is passed a copy of the void* passed as - * the fourth argument. - * - * The remaining arguments to the user-supplied routine are two strings, - * each represented by a [length, data] pair and encoded in the encoding - * that was passed as the third argument when the collation sequence was - * registered. The user routine should return negative, zero or positive if - * the first string is less than, equal to, or greater than the second - * string. i.e. (STRING1 - STRING2). - */ -DoxyDefine(int switch_core_db_create_collation(switch_core_db *, - const char *zName, int eTextRep, void *, int (*xCompare) (void *, int, const void *, int, const void *) - );) -#define switch_core_db_create_collation sqlite3_create_collation -/** - * The following function is used to add user functions or aggregates - * implemented in C to the SQL langauge interpreted by SQLite. The - * name of the (scalar) function or aggregate, is encoded in UTF-8. - * - * The first argument is the database handle that the new function or - * aggregate is to be added to. If a single program uses more than one - * database handle internally, then user functions or aggregates must - * be added individually to each database handle with which they will be - * used. - * - * The third parameter is the number of arguments that the function or - * aggregate takes. If this parameter is negative, then the function or - * aggregate may take any number of arguments. - * - * The fourth parameter is one of SQLITE_UTF* values defined below, - * indicating the encoding that the function is most likely to handle - * values in. This does not change the behaviour of the programming - * interface. However, if two versions of the same function are registered - * with different encoding values, SQLite invokes the version likely to - * minimize conversions between text encodings. - * - * The seventh, eighth and ninth parameters, xFunc, xStep and xFinal, are - * pointers to user implemented C functions that implement the user - * function or aggregate. A scalar function requires an implementation of - * the xFunc callback only, NULL pointers should be passed as the xStep - * and xFinal parameters. An aggregate function requires an implementation - * of xStep and xFinal, but NULL should be passed for xFunc. To delete an - * existing user function or aggregate, pass NULL for all three function - * callback. Specifying an inconstent set of callback values, such as an - * xFunc and an xFinal, or an xStep but no xFinal, SQLITE_ERROR is - * returned. - */ -DoxyDefine(int switch_core_db_create_function(switch_core_db *, - const char *zFunctionName, - int nArg, - int eTextRep, - void *, - void (*xFunc) (sqlite3_context *, int, sqlite3_value **), - void (*xStep) (sqlite3_context *, int, sqlite3_value **), void (*xFinal) (sqlite3_context *) - );) -#define switch_core_db_create_function sqlite3_create_function -/** - * Return the number of values in the current row of the result set. - * - * After a call to switch_core_db_step() that returns SQLITE_ROW, this routine - * will return the same value as the switch_core_db_column_count() function. - * After switch_core_db_step() has returned an SQLITE_DONE, SQLITE_BUSY or - * error code, or before switch_core_db_step() has been called on a - * compiled SQL statement, this routine returns zero. - */ -DoxyDefine(int switch_core_db_data_count(sqlite3_stmt * pStmt);) -#define switch_core_db_data_count sqlite3_data_count -/** - * Return the sqlite3* database handle to which the prepared statement given - * in the argument belongs. This is the same database handle that was - * the first argument to the switch_core_db_prepare() that was used to create - * the statement in the first place. - */ - DoxyDefine(switch_core_db * switch_core_db_db_handle(sqlite3_stmt *);) -#define switch_core_db_db_handle sqlite3_db_handle -/** -** Return the error code for the most recent switch_core_db_* API call associated -** with switch_core_db handle 'db'. SQLITE_OK is returned if the most recent -** API call was successful. -** -** Calls to many switch_core_db_* functions set the error code and string returned -** by switch_core_db_errcode(), and switch_core_db_errmsg() -** (overwriting the previous values). Note that calls to switch_core_db_errcode(), -** and switch_core_db_errmsg() themselves do not affect the -** results of future invocations. -** -** Assuming no other intervening switch_core_db_* API calls are made, the error -** code returned by this function is associated with the same error as -** the strings returned by sqlite3_errmsg() and sqlite3_errmsg16(). -*/ -DoxyDefine(int switch_core_db_errcode(switch_core_db * db);) -#define switch_core_db_errcode sqlite3_errcode -/** - * Return a pointer to a UTF-8 encoded string describing in english the - * error condition for the most recent sqlite3_* API call. The returned - * string is always terminated by an 0x00 byte. - * - * The string "not an error" is returned when the most recent API call was - * successful. - */ -DoxyDefine(const char *switch_core_db_errmsg(switch_core_db *);) -#define switch_core_db_errmsg sqlite3_errmsg -/** - * A function to executes one or more statements of SQL. - * - * If one or more of the SQL statements are queries, then - * the callback function specified by the 3rd parameter is - * invoked once for each row of the query result. This callback - * should normally return 0. If the callback returns a non-zero - * value then the query is aborted, all subsequent SQL statements - * are skipped and the switch_core_db_exec() function returns the SQLITE_ABORT. - * - * The 4th parameter is an arbitrary pointer that is passed - * to the callback function as its first parameter. - * - * The 2nd parameter to the callback function is the number of - * columns in the query result. The 3rd parameter to the callback - * is an array of strings holding the values for each column. - * The 4th parameter to the callback is an array of strings holding - * the names of each column. - * - * The callback function may be NULL, even for queries. A NULL - * callback is not an error. It just means that no callback - * will be invoked. - * - * If an error occurs while parsing or evaluating the SQL (but - * not while executing the callback) then an appropriate error - * message is written into memory obtained from malloc() and - * *errmsg is made to point to that message. The calling function - * is responsible for freeing the memory that holds the error - * message. Use switch_core_db_free() for this. If errmsg==NULL, - * then no error message is ever written. - * - * The return value is is SQLITE_OK if there are no errors and - * some other return code if there is an error. The particular - * return value depends on the type of error. - * - * If the query could not be executed because a database file is - * locked or busy, then this function returns SQLITE_BUSY. (This - * behavior can be modified somewhat using the sswitch_core_db_busy_handler() - * and switch_core_db_busy_timeout() functions below.) - */ -DoxyDefine(int switch_core_db_exec(switch_core_db *, /* An open database */ - const char *sql, /* SQL to be executed */ - sqlite3_callback, /* Callback function */ - void *, /* 1st argument to callback function */ - char **errmsg /* Error msg written here */ - );) -#define switch_core_db_exec sqlite3_exec -/** - * Return TRUE (non-zero) if the statement supplied as an argument needs - * to be recompiled. A statement needs to be recompiled whenever the - * execution environment changes in a way that would alter the program - * that switch_core_db_prepare() generates. For example, if new functions or - * collating sequences are registered or if an authorizer function is - * added or changed. - * - */ -DoxyDefine(int switch_core_db_expired(sqlite3_stmt *);) -#define switch_core_db_expired sqlite3_expired -/** - * This function is called to delete a compiled - * SQL statement obtained by a previous call to switch_core_db_prepare(). - * If the statement was executed successfully, or - * not executed at all, then SQLITE_OK is returned. If execution of the - * statement failed then an error code is returned. - * - * This routine can be called at any point during the execution of the - * virtual machine. If the virtual machine has not completed execution - * when this routine is called, that is like encountering an error or - * an interrupt. (See switch_core_db_interrupt().) Incomplete updates may be - * rolled back and transactions cancelled, depending on the circumstances, - * and the result code returned will be SQLITE_ABORT. - */ -DoxyDefine(int switch_core_db_finalize(sqlite3_stmt * pStmt);) -#define switch_core_db_finalize sqlite3_finalize -/** - * Call this routine to free the memory that sqlite3_get_table() allocated. - */ -DoxyDefine(void switch_core_db_free_table(char **result);) -#define switch_core_db_free_table sqlite3_free_table -/** - * Test to see whether or not the database connection is in autocommit - * mode. Return TRUE if it is and FALSE if not. Autocommit mode is on - * by default. Autocommit is disabled by a BEGIN statement and reenabled - * by the next COMMIT or ROLLBACK. - */ -DoxyDefine(int switch_core_db_get_autocommit(switch_core_db *);) -#define switch_core_db_get_autocommit sqlite3_get_autocommit -/** - * The following function may be used by scalar user functions to - * associate meta-data with argument values. If the same value is passed to - * multiple invocations of the user-function during query execution, under - * some circumstances the associated meta-data may be preserved. This may - * be used, for example, to add a regular-expression matching scalar - * function. The compiled version of the regular expression is stored as - * meta-data associated with the SQL value passed as the regular expression - * pattern. - * - * returns a pointer to the meta data - * associated with the Nth argument value to the current user function - * call, where N is the second parameter. If no meta-data has been set for - * that value, then a NULL pointer is returned. - * - * In practice, meta-data is preserved between function calls for - * expressions that are constant at compile time. This includes literal - * values and SQL variables. - */ -DoxyDefine(void *switch_core_db_get_auxdata(sqlite3_context *, int);) -#define switch_core_db_get_auxdata sqlite3_get_auxdata -/** - * The following function may be used by scalar user functions to - * associate meta-data with argument values. If the same value is passed to - * multiple invocations of the user-function during query execution, under - * some circumstances the associated meta-data may be preserved. This may - * be used, for example, to add a regular-expression matching scalar - * function. The compiled version of the regular expression is stored as - * meta-data associated with the SQL value passed as the regular expression - * pattern. - * - * This function is used to associate meta data with a user - * function argument. The third parameter is a pointer to the meta data - * to be associated with the Nth user function argument value. The fourth - * parameter specifies a 'delete function' that will be called on the meta - * data pointer to release it when it is no longer required. If the delete - * function pointer is NULL, it is not invoked. - * - * In practice, meta-data is preserved between function calls for - * expressions that are constant at compile time. This includes literal - * values and SQL variables. - */ -DoxyDefine(void switch_core_db_set_auxdata(sqlite3_context *, int, void *, void (*)(void *));) -#define switch_core_db_set_auxdata sqlite3_set_auxdata -/** - * This next routine is really just a wrapper around sqlite3_exec(). - * Instead of invoking a user-supplied callback for each row of the - * result, this routine remembers each row of the result in memory - * obtained from malloc(), then returns all of the result after the - * query has finished. - * - * As an example, suppose the query result where this table: - * - * Name | Age - * ----------------------- - * Alice | 43 - * Bob | 28 - * Cindy | 21 - * - * If the 3rd argument were &azResult then after the function returns - * azResult will contain the following data: - * - * azResult[0] = "Name"; - * azResult[1] = "Age"; - * azResult[2] = "Alice"; - * azResult[3] = "43"; - * azResult[4] = "Bob"; - * azResult[5] = "28"; - * azResult[6] = "Cindy"; - * azResult[7] = "21"; - * - * Notice that there is an extra row of data containing the column - * headers. But the *nrow return value is still 3. *ncolumn is - * set to 2. In general, the number of values inserted into azResult - * will be ((*nrow) + 1)*(*ncolumn). - * - * After the calling function has finished using the result, it should - * pass the result data pointer to switch_core_db_free_table() in order to - * release the memory that was malloc-ed. Because of the way the - * malloc() happens, the calling function must not try to call - * free() directly. Only switch_core_db_free_table() is able to release - * the memory properly and safely. - * - * The return value of this routine is the same as from switch_core_db_exec(). - */ -DoxyDefine(int switch_core_db_get_table(switch_core_db *, /* An open database */ - const char *sql, /* SQL to be executed */ - char ***resultp, /* Result written to a char *[] that this points to */ - int *nrow, /* Number of result rows written here */ - int *ncolumn, /* Number of result columns written here */ - char **errmsg /* Error msg written here */ - );) -#define switch_core_db_get_table sqlite3_get_table -/** - * This function is called to recover from a malloc() failure that occured - * within the SQLite library. Normally, after a single malloc() fails the - * library refuses to function (all major calls return SQLITE_NOMEM). - * This function restores the library state so that it can be used again. - * - * All existing statements (sqlite3_stmt pointers) must be finalized or - * reset before this call is made. Otherwise, SQLITE_BUSY is returned. - * If any in-memory databases are in use, either as a main or TEMP - * database, SQLITE_ERROR is returned. In either of these cases, the - * library is not reset and remains unusable. - * - * This function is *not* threadsafe. Calling this from within a threaded - * application when threads other than the caller have used SQLite is - * dangerous and will almost certainly result in malfunctions. - * - * This functionality can be omitted from a build by defining the - * SQLITE_OMIT_GLOBALRECOVER at compile time. - */ -DoxyDefine(int switch_core_db_global_recover();) -#define switch_core_db_global_recover sqlite3_global_recover -/** This function causes any pending database operation to abort and - * return at its earliest opportunity. This routine is typically - * called in response to a user action such as pressing "Cancel" - * or Ctrl-C where the user wants a long query operation to halt - * immediately. - */ -DoxyDefine(void switch_core_db_interrupt(switch_core_db *);) -#define switch_core_db_interrupt sqlite3_interrupt -/** - * Each entry in an SQLite table has a unique integer key. (The key is - * the value of the INTEGER PRIMARY KEY column if there is such a column, - * otherwise the key is generated at random. The unique key is always - * available as the ROWID, OID, or _ROWID_ column.) The following routine - * returns the integer key of the most recent insert in the database. - * - * This function is similar to the mysql_insert_id() function from MySQL. - */ - DoxyDefine(sqlite_int64 switch_core_db_last_insert_rowid(switch_core_db *);) -#define switch_core_db_last_insert_rowid sqlite3_last_insert_rowid -/** - * Open the sqlite database file "filename". The "filename" is UTF-8 - * encoded. An sqlite3* handle is returned in *ppDb, even - * if an error occurs. If the database is opened (or created) successfully, - * then SQLITE_OK is returned. Otherwise an error code is returned. The - * switch_core_db_errmsg() routine can be used to obtain - * an English language description of the error. - * - * If the database file does not exist, then a new database is created. - * The encoding for the database is UTF-8. - * - * Whether or not an error occurs when it is opened, resources associated - * with the switch_core_db* handle should be released by passing it to - * switch_core_db_close() when it is no longer required. - */ -DoxyDefine(int switch_core_db_open(const char *filename, /* Database filename (UTF-8) */ - switch_core_db ** ppDb /* OUT: SQLite db handle */ - );) -#define switch_core_db_open sqlite3_open -/** - * To execute an SQL query, it must first be compiled into a byte-code - * program using the following routine. - * - * The first parameter "db" is an SQLite database handle. The second - * parameter "zSql" is the statement to be compiled, encoded as - * UTF-8. If the next parameter, "nBytes", is less - * than zero, then zSql is read up to the first nul terminator. If - * "nBytes" is not less than zero, then it is the length of the string zSql - * in bytes (not characters). - * - * *pzTail is made to point to the first byte past the end of the first - * SQL statement in zSql. This routine only compiles the first statement - * in zSql, so *pzTail is left pointing to what remains uncompiled. - * - * *ppStmt is left pointing to a compiled SQL statement that can be - * executed using switch_core_db_step(). Or if there is an error, *ppStmt may be - * set to NULL. If the input text contained no SQL (if the input is and - * empty string or a comment) then *ppStmt is set to NULL. - * - * On success, SQLITE_OK is returned. Otherwise an error code is returned. - */ -DoxyDefine(int switch_core_db_prepare(sqlite3 * db, /* Database handle */ - const char *zSql, /* SQL statement, UTF-8 encoded */ - int nBytes, /* Length of zSql in bytes. */ - sqlite3_stmt ** ppStmt, /* OUT: Statement handle */ - const char **pzTail /* OUT: Pointer to unused portion of zSql */ - );) -#define switch_core_db_prepare sqlite3_prepare -/** - * Register a function for tracing SQL command evaluation. The function registered by - * switch_core_db_profile() runs at the end of each SQL statement and includes - * information on how long that statement ran. - * - * The sqlite3_profile() API is currently considered experimental and - * is subject to change. - */ -DoxyDefine(void *switch_core_db_profile(switch_core_db *, void (*xProfile) (void *, const char *, sqlite_uint64), void *);) -#define switch_core_db_profile sqlite3_profile -/** - * This routine configures a callback function - the progress callback - that - * is invoked periodically during long running calls to switch_core_db_exec(), - * switch_core_db_step() and switch_core_db_get_table(). An example use for this API is to - * keep a GUI updated during a large query. - * - * The progress callback is invoked once for every N virtual machine opcodes, - * where N is the second argument to this function. The progress callback - * itself is identified by the third argument to this function. The fourth - * argument to this function is a void pointer passed to the progress callback - * function each time it is invoked. - * - * If a call to switch_core_db_exec(), switch_core_db_step() or switch_core_db_get_table() results - * in less than N opcodes being executed, then the progress callback is not - * invoked. - * - * To remove the progress callback altogether, pass NULL as the third - * argument to this function. - * - * If the progress callback returns a result other than 0, then the current - * query is immediately terminated and any database changes rolled back. If the - * query was part of a larger transaction, then the transaction is not rolled - * back and remains active. The switch_core_db_exec() call returns SQLITE_ABORT. - * - ****** THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE ****** - */ -DoxyDefine(void switch_core_db_progress_handler(switch_core_db *, int, int (*)(void *), void *);) -#define switch_core_db_progress_handler sqlite3_progress_handler -/** - * The switch_core_db_reset() function is called to reset a compiled SQL - * statement obtained by a previous call to switch_core_db_prepare() - * back to it's initial state, ready to be re-executed. - * Any SQL statement variables that had values bound to them using - * the switch_core_db_bind_*() API retain their values. - */ -DoxyDefine(int switch_core_db_reset(sqlite3_stmt * pStmt);) -#define switch_core_db_reset sqlite3_reset -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_blob(sqlite3_context *, const void *, int, void (*)(void *));) -#define switch_core_db_result_blob sqlite3_result_blob -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_double(sqlite3_context *, double);) -#define switch_core_db_result_double sqlite3_result_double -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_error(sqlite3_context *, const char *, int);) -#define switch_core_db_result_error sqlite3_result_error -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_error16(sqlite3_context *, const void *, int);) -#define switch_core_db_result_error16 sqlite3_result_error16 -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_int(sqlite3_context *, int);) -#define switch_core_db_result_int sqlite3_result_int -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_int64(sqlite3_context *, sqlite_int64);) -#define switch_core_db_result_int64 sqlite3_result_int64 -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_null(sqlite3_context *);) -#define switch_core_db_result_null sqlite3_result_null -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_text(sqlite3_context *, const char *, int, void (*)(void *));) -#define switch_core_db_result_text sqlite3_result_text -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_text16(sqlite3_context *, const void *, int, void (*)(void *));) -#define switch_core_db_result_text16 sqlite3_result_text16 -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_text16le(sqlite3_context *, const void *, int, void (*)(void *));) -#define switch_core_db_result_text16le sqlite3_result_text16le -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_text16be(sqlite3_context *, const void *, int, void (*)(void *));) -#define switch_core_db_result_text16be sqlite3_result_text16be -/** - * User-defined functions invoke this routine in order to - * set their return value. - */ -DoxyDefine(void switch_core_db_result_value(sqlite3_context *, sqlite3_value *);) -#define switch_core_db_result_value sqlite3_result_value -/** - * This routine registers a callback with the SQLite library. The - * callback is invoked (at compile-time, not at run-time) for each - * attempt to access a column of a table in the database. The callback - * returns SQLITE_OK if access is allowed, SQLITE_DENY if the entire - * SQL statement should be aborted with an error and SQLITE_IGNORE - * if the column should be treated as a NULL value. - */ -DoxyDefine(int switch_core_db_set_authorizer(switch_core_db *, - int (*xAuth) (void *, int, const char *, const char *, const char *, const char *), void *pUserData);) -#define switch_core_db_set_authorizer sqlite3_set_authorizer -/** - * After an SQL query has been compiled with a call to either - * switch_core_db_prepare(), then this function must be - * called one or more times to execute the statement. - * - * The return value will be either SQLITE_BUSY, SQLITE_DONE, - * SQLITE_ROW, SQLITE_ERROR, or SQLITE_MISUSE. - * - * SQLITE_BUSY means that the database engine attempted to open - * a locked database and there is no busy callback registered. - * Call switch_core_db_step() again to retry the open. - * - * SQLITE_DONE means that the statement has finished executing - * successfully. switch_core_db_step() should not be called again on this virtual - * machine. - * - * If the SQL statement being executed returns any data, then - * SQLITE_ROW is returned each time a new row of data is ready - * for processing by the caller. The values may be accessed using - * the switch_core_db_column_*() functions described below. switch_core_db_step() - * is called again to retrieve the next row of data. - * - * SQLITE_ERROR means that a run-time error (such as a constraint - * violation) has occurred. switch_core_db_step() should not be called again on - * the VM. More information may be found by calling switch_core_db_errmsg(). - * - * SQLITE_MISUSE means that the this routine was called inappropriately. - * Perhaps it was called on a virtual machine that had already been - * finalized or on one that had previously returned SQLITE_ERROR or - * SQLITE_DONE. Or it could be the case the the same database connection - * is being used simulataneously by two or more threads. - */ -DoxyDefine(int switch_core_db_step(sqlite3_stmt *);) -#define switch_core_db_step sqlite3_step -/** - * If the following global variable is made to point to a - * string which is the name of a directory, then all temporary files - * created by SQLite will be placed in that directory. If this variable - * is NULL pointer, then SQLite does a search for an appropriate temporary - * file directory. - * - * Once switch_core_db_open() has been called, changing this variable will invalidate - * the current temporary database, if any. - */ - DoxyDefine(extern char *switch_core_db_temp_directory;) -#define switch_core_db_temp_directory sqlite3_temp_directory -/** - * This function returns the number of database rows that have been - * modified by INSERT, UPDATE or DELETE statements since the database handle - * was opened. This includes UPDATE, INSERT and DELETE statements executed - * as part of trigger programs. All changes are counted as soon as the - * statement that makes them is completed (when the statement handle is - * passed to switch_core_db_reset() or switch_core_db_finalise()). - * - * SQLite implements the command "DELETE FROM table" without a WHERE clause - * by dropping and recreating the table. (This is much faster than going - * through and deleting individual elements form the table.) Because of - * this optimization, the change count for "DELETE FROM table" will be - * zero regardless of the number of elements that were originally in the - * table. To get an accurate count of the number of rows deleted, use - * "DELETE FROM table WHERE 1" instead. - */ -DoxyDefine(int switch_core_db_total_changes(switch_core_db *);) -#define switch_core_db_total_changes sqlite3_total_changes -/** - * Register a function for tracing SQL command evaluation. The function - * registered is invoked at the first switch_core_db_step() - * for the evaluation of an SQL statement. - */ -DoxyDefine(void *switch_core_db_trace(switch_core_db *, void (*xTrace) (void *, const char *), void *);) -#define switch_core_db_trace sqlite3_trace -/** - * Move all bindings from the first prepared statement over to the second. - * This routine is useful, for example, if the first prepared statement - * fails with an SQLITE_SCHEMA error. The same SQL can be prepared into - * the second prepared statement then all of the bindings transfered over - * to the second statement before the first statement is finalized. - */ -DoxyDefine(int switch_core_db_transfer_bindings(sqlite3_stmt *, sqlite3_stmt *);) -#define switch_core_db_transfer_bindings sqlite3_transfer_bindings -/** - * The pUserData parameter to the switch_core_db_create_function() - * routine used to register user functions is available to - * the implementation of the function using this call. - */ -DoxyDefine(void *switch_core_db_user_data(sqlite3_context *);) -#define switch_core_db_user_data sqlite3_user_data -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(const void *switch_core_db_value_blob(sqlite3_value *);) -#define switch_core_db_value_blob sqlite3_value_blob -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(int switch_core_db_value_bytes(sqlite3_value *);) -#define switch_core_db_value_bytes sqlite3_value_bytes -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(int switch_core_db_value_bytes16(sqlite3_value *);) -#define switch_core_db_value_bytes16 sqlite3_value_bytes16 -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(double switch_core_db_value_double(sqlite3_value *);) -#define switch_core_db_value_double sqlite3_value_double -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(int switch_core_db_value_int(sqlite3_value *);) -#define switch_core_db_value_int sqlite3_value_int -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ - DoxyDefine(sqlite_int64 switch_core_db_value_int64(sqlite3_value *);) -#define switch_core_db_value_int64 sqlite3_value_int64 -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(const unsigned char *switch_core_db_value_text(sqlite3_value *);) -#define switch_core_db_value_text sqlite3_value_text -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(const void *switch_core_db_value_text16(sqlite3_value *);) -#define switch_core_db_value_text16 sqlite3_value_text16 -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(const void *switch_core_db_value_text16be(sqlite3_value *);) -#define switch_core_db_value_text16be sqlite3_value_text16be -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(const void *switch_core_db_value_text16le(sqlite3_value *);) -#define switch_core_db_value_text16le sqlite3_value_text16le -/** - * returns information about parameters to - * a user-defined function. Function implementations use this routines - * to access their parameters. This routine is the same as the - * switch_core_db_column_* routines except that this routine takes a single - * sqlite3_value* pointer instead of an sqlite3_stmt* and an integer - * column number. - */ -DoxyDefine(int switch_core_db_value_type(sqlite3_value *);) -#define switch_core_db_value_type sqlite3_value_type -/** - * This routine is a variant of the "sprintf()" from the - * standard C library. The resulting string is written into memory - * obtained from malloc() so that there is never a possiblity of buffer - * overflow. This routine also implement some additional formatting - * options that are useful for constructing SQL statements. - * - * The strings returned by this routine should be freed by calling - * switch_core_db_free(). - * - * All of the usual printf formatting options apply. In addition, there - * is a "%q" option. %q works like %s in that it substitutes a null-terminated - * string from the argument list. But %q also doubles every '\'' character. - * %q is designed for use inside a string literal. By doubling each '\'' - * character it escapes that character and allows it to be inserted into - * the string. - * - * For example, so some string variable contains text as follows: - * - * char *zText = "It's a happy day!"; - * - * We can use this text in an SQL statement as follows: - * - * char *z = switch_core_db_mprintf("INSERT INTO TABLES('%q')", zText); - * switch_core_db_exec(db, z, callback1, 0, 0); - * switch_core_db_free(z); - * - * Because the %q format string is used, the '\'' character in zText - * is escaped and the SQL generated is as follows: - * - * INSERT INTO table1 VALUES('It''s a happy day!') - * - * This is correct. Had we used %s instead of %q, the generated SQL - * would have looked like this: - * - * INSERT INTO table1 VALUES('It's a happy day!'); - * - * This second example is an SQL syntax error. As a general rule you - * should always use %q instead of %s when inserting text into a string - * literal. - */ -DoxyDefine(char *switch_core_db_mprintf(const char *, ...);) -#define switch_core_db_mprintf sqlite3_mprintf -#define switch_mprintf sqlite3_mprintf -/** - * This routine is a variant of the "sprintf()" from the - * standard C library. The resulting string is written into memory - * obtained from malloc() so that there is never a possiblity of buffer - * overflow. This routine also implement some additional formatting - * options that are useful for constructing SQL statements. - * - * The strings returned by this routine should be freed by calling - * switch_core_db_free(). - * - * All of the usual printf formatting options apply. In addition, there - * is a "%q" option. %q works like %s in that it substitutes a null-terminated - * string from the argument list. But %q also doubles every '\'' character. - * %q is designed for use inside a string literal. By doubling each '\'' - * character it escapes that character and allows it to be inserted into - * the string. - * - * For example, so some string variable contains text as follows: - * - * char *zText = "It's a happy day!"; - * - * We can use this text in an SQL statement as follows: - * - * char *z = switch_core_db_mprintf("INSERT INTO TABLES('%q')", zText); - * switch_core_db_exec(db, z, callback1, 0, 0); - * switch_core_db_free(z); - * - * Because the %q format string is used, the '\'' character in zText - * is escaped and the SQL generated is as follows: - * - * INSERT INTO table1 VALUES('It''s a happy day!') - * - * This is correct. Had we used %s instead of %q, the generated SQL - * would have looked like this: - * - * INSERT INTO table1 VALUES('It's a happy day!'); - * - * This second example is an SQL syntax error. As a general rule you - * should always use %q instead of %s when inserting text into a string - * literal. - */ -DoxyDefine(char *switch_core_db_vmprintf(const char *, va_list);) -#define switch_core_db_vmprintf sqlite3_vmprintf -/** - * This routine is a variant of the "sprintf()" from the - * standard C library. The resulting string is written into memory - * obtained from malloc() so that there is never a possiblity of buffer - * overflow. This routine also implement some additional formatting - * options that are useful for constructing SQL statements. - * - * The strings returned by this routine should be freed by calling - * switch_core_db_free(). - * - * All of the usual printf formatting options apply. In addition, there - * is a "%q" option. %q works like %s in that it substitutes a null-terminated - * string from the argument list. But %q also doubles every '\'' character. - * %q is designed for use inside a string literal. By doubling each '\'' - * character it escapes that character and allows it to be inserted into - * the string. - * - * For example, so some string variable contains text as follows: - * - * char *zText = "It's a happy day!"; - * - * We can use this text in an SQL statement as follows: - * - * char *z = switch_core_db_mprintf("INSERT INTO TABLES('%q')", zText); - * switch_core_db_exec(db, z, callback1, 0, 0); - * switch_core_db_free(z); - * - * Because the %q format string is used, the '\'' character in zText - * is escaped and the SQL generated is as follows: - * - * INSERT INTO table1 VALUES('It''s a happy day!') - * - * This is correct. Had we used %s instead of %q, the generated SQL - * would have looked like this: - * - * INSERT INTO table1 VALUES('It's a happy day!'); - * - * This second example is an SQL syntax error. As a general rule you - * should always use %q instead of %s when inserting text into a string - * literal. - */ -DoxyDefine(char *switch_core_db_snprintf(int, char *, const char *, ...);) -#define switch_core_db_snprintf sqlite3_snprintf -/** - * call this routine to free memory malloced by a call to switch_core_db_mprintf, switch_core_db_vmprintf, or switch_core_db_snprintf - */ -DoxyDefine(void switch_core_db_free(char *z);) -#define switch_core_db_free sqlite3_free -/** @} */ -/** @} */ - SWITCH_END_EXTERN_C -#endif -/* For Emacs: - * Local Variables: - * mode:c - * indent-tabs-mode:t - * tab-width:4 - * c-basic-offset:4 - * End: - * For VIM: - * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab: - */ diff --git a/src/switch_core.c b/src/switch_core.c index 32a6499ecf..27f296a8f0 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -35,7 +35,7 @@ #include #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE_DATA switch_directories SWITCH_GLOBAL_dirs = { 0 }; diff --git a/src/switch_core_asr.c b/src/switch_core_asr.c index 9c970dbd1f..bad5e47fbb 100644 --- a/src/switch_core_asr.c +++ b/src/switch_core_asr.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_asr_open(switch_asr_handle_t *ah, char *module_name, diff --git a/src/switch_core_codec.c b/src/switch_core_codec.c index beb59df083..605e500f2a 100644 --- a/src/switch_core_codec.c +++ b/src/switch_core_codec.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_session_set_read_codec(switch_core_session_t *session, switch_codec_t *codec) { diff --git a/src/switch_core_db.c b/src/switch_core_db.c index f0f4a28f3d..87f0eb6d12 100644 --- a/src/switch_core_db.c +++ b/src/switch_core_db.c @@ -31,7 +31,7 @@ */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" #include diff --git a/src/switch_core_directory.c b/src/switch_core_directory.c index e61dce12c9..7c6f8cf4e7 100644 --- a/src/switch_core_directory.c +++ b/src/switch_core_directory.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_directory_open(switch_directory_handle_t *dh, char *module_name, char *source, char *dsn, char *passwd, switch_memory_pool_t *pool) diff --git a/src/switch_core_event_hook.c b/src/switch_core_event_hook.c index bdeea8ab6b..60feeab3a8 100644 --- a/src/switch_core_event_hook.c +++ b/src/switch_core_event_hook.c @@ -29,7 +29,7 @@ * */ #include "switch.h" -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_event_hook_add_outgoing(switch_core_session_t *session, switch_outgoing_channel_hook_t outgoing_channel) { diff --git a/src/switch_core_file.c b/src/switch_core_file.c index 6141bc20ad..b17b5e4ff3 100644 --- a/src/switch_core_file.c +++ b/src/switch_core_file.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_file_open(switch_file_handle_t *fh, char *file_path, uint8_t channels, uint32_t rate, unsigned int flags, switch_memory_pool_t *pool) diff --git a/src/switch_core_hash.c b/src/switch_core_hash.c index 68284666f3..c03a442048 100644 --- a/src/switch_core_hash.c +++ b/src/switch_core_hash.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_hash_init(switch_hash_t ** hash, switch_memory_pool_t *pool) { diff --git a/src/switch_core_io.c b/src/switch_core_io.c index 76db5c29b3..e1e61f902b 100644 --- a/src/switch_core_io.c +++ b/src/switch_core_io.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id) diff --git a/src/switch_core_media_bug.c b/src/switch_core_media_bug.c index 538d355381..a81c5b7cb6 100644 --- a/src/switch_core_media_bug.c +++ b/src/switch_core_media_bug.c @@ -32,7 +32,7 @@ * */ #include "switch.h" -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" static void switch_core_media_bug_destroy(switch_media_bug_t *bug) { diff --git a/src/switch_core_memory.c b/src/switch_core_memory.c index 93e27ed2d3..0264a42f6a 100644 --- a/src/switch_core_memory.c +++ b/src/switch_core_memory.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" static struct { switch_memory_pool_t *memory_pool; diff --git a/src/switch_core_port_allocator.c b/src/switch_core_port_allocator.c index 6d9fa60ef5..a2170e1b36 100644 --- a/src/switch_core_port_allocator.c +++ b/src/switch_core_port_allocator.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" struct switch_core_port_allocator { switch_port_t start; diff --git a/src/switch_core_rwlock.c b/src/switch_core_rwlock.c index 62128b1e19..9278bbb0d0 100644 --- a/src/switch_core_rwlock.c +++ b/src/switch_core_rwlock.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" #ifdef SWITCH_DEBUG_RWLOCKS SWITCH_DECLARE(switch_status_t) switch_core_session_perform_read_lock(switch_core_session_t *session, const char *file, const char *func, int line) diff --git a/src/switch_core_session.c b/src/switch_core_session.c index 39bb276e0c..fc76d65dc2 100644 --- a/src/switch_core_session.c +++ b/src/switch_core_session.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" static struct { switch_memory_pool_t *memory_pool; diff --git a/src/switch_core_speech.c b/src/switch_core_speech.c index 5809c4bb27..7bca9235bd 100644 --- a/src/switch_core_speech.c +++ b/src/switch_core_speech.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_speech_feed_tts(switch_speech_handle_t *sh, char *text, switch_speech_flag_t *flags) { diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 9fdf3ce9b4..6952355e38 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" static struct { switch_core_db_t *db; diff --git a/src/switch_core_state_machine.c b/src/switch_core_state_machine.c index de2c4a8a96..a9d859a922 100644 --- a/src/switch_core_state_machine.c +++ b/src/switch_core_state_machine.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" static void switch_core_standard_on_init(switch_core_session_t *session) { diff --git a/src/switch_core_timer.c b/src/switch_core_timer.c index b1fa29eed7..e28fde59ff 100644 --- a/src/switch_core_timer.c +++ b/src/switch_core_timer.c @@ -32,7 +32,7 @@ * */ #include -#include "private/switch_core.h" +#include "private/switch_core_pvt.h" SWITCH_DECLARE(switch_status_t) switch_core_timer_init(switch_timer_t *timer, char *timer_name, int interval, int samples, switch_memory_pool_t *pool) {