diff options
author | Georg Richter <georg@php.net> | 2003-03-11 01:19:21 +0000 |
---|---|---|
committer | Georg Richter <georg@php.net> | 2003-03-11 01:19:21 +0000 |
commit | 7cf921a56f3e85af996a9d13b99d808c277a693e (patch) | |
tree | 1a514764d14e27983a37949be030ccc60fa50f53 /ext/mysqli/php_mysqli.h | |
parent | febb535db08d96ff47c74b679a14afc6bd6b7906 (diff) | |
download | php-git-7cf921a56f3e85af996a9d13b99d808c277a693e.tar.gz |
profiler:
moved profiler stuff from php_mysql.h to separate include file
added port communication
added xml support for file and port output
Diffstat (limited to 'ext/mysqli/php_mysqli.h')
-rw-r--r-- | ext/mysqli/php_mysqli.h | 131 |
1 files changed, 9 insertions, 122 deletions
diff --git a/ext/mysqli/php_mysqli.h b/ext/mysqli/php_mysqli.h index 5387e6c889..c823e64527 100644 --- a/ext/mysqli/php_mysqli.h +++ b/ext/mysqli/php_mysqli.h @@ -25,13 +25,8 @@ #undef LIST #endif -#ifdef PHP_WIN32 -#include "win32/time.h" -#else -#include "sys/time.h" -#endif - #include <mysql.h> +#include "mysqli_profiler.h" #ifndef PHP_MYSQLI_H #define PHP_MYSQLI_H @@ -57,92 +52,19 @@ typedef struct { void *ptr; /* resource: (mysql, result, stmt) */ } MYSQLI_RESOURCE; -/* common profiler header struct */ - -typedef struct { - unsigned int type; - void *child; - void *next; - char *filename; - unsigned int lineno; - char *functionname; - struct timeval starttime; - struct timeval elapsedtime; - struct timeval lifetime; - char *errormsg; - ulong error; -} PR_HEADER; - -/* explain output */ -typedef struct { - char *query; - unsigned int exp_cnt; - char **exp_table; - char **exp_type; - char **exp_key; - ulong *exp_rows; -} PR_EXPLAIN; - -/* common */ -typedef struct { - PR_HEADER header; -} PR_COMMON; - -/* connection */ -typedef struct { - PR_HEADER header; - unsigned int thread_id; - char *hostname; - char *username; - unsigned int closed; -} PR_MYSQL; - -/* resultset */ -typedef struct { - PR_HEADER header; - unsigned int columns; - ulong rows; - ulong fields; - ulong fetched_rows; - unsigned int closed; -} PR_RESULT; - -/* command */ -/* TODO: return values */ -typedef struct { - PR_HEADER header; - ulong returntype; - void *returnvalue; -} PR_COMMAND; - -/* query */ -typedef struct { - PR_HEADER header; - PR_EXPLAIN explain; - ulong affectedrows; - ulong insertid; -} PR_QUERY; - -/* statement */ -typedef struct { - PR_HEADER header; - PR_EXPLAIN explain; - unsigned int param_cnt; - unsigned int field_cnt; -} PR_STMT; - typedef struct _mysqli_object { zend_object zo; void *ptr; } mysqli_object; /* extends zend_object */ -#define MYSQLI_PR_MYSQL 0 -#define MYSQLI_PR_QUERY 1 -#define MYSQLI_PR_QUERY_RESULT 2 -#define MYSQLI_PR_STMT 3 -#define MYSQLI_PR_STMT_RESULT 4 -#define MYSQLI_PR_RESULT 5 -#define MYSQLI_PR_COMMAND 6 +#define MYSQLI_PR_MAIN 0 +#define MYSQLI_PR_MYSQL 1 +#define MYSQLI_PR_QUERY 2 +#define MYSQLI_PR_QUERY_RESULT 3 +#define MYSQLI_PR_STMT 4 +#define MYSQLI_PR_STMT_RESULT 5 +#define MYSQLI_PR_RESULT 6 +#define MYSQLI_PR_COMMAND 7 #define phpext_mysqli_ptr &mysqli_module_entry @@ -167,13 +89,6 @@ extern function_entry mysqli_result_methods[]; extern void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int flag); extern void php_clear_stmt_bind(STMT *stmt); -/* Profiler functions */ -extern void php_mysqli_profiler_report(PR_COMMON *, int); -extern PR_COMMON *php_mysqli_profiler_new_object(PR_COMMON *parent, unsigned int type, unsigned int settime); -extern void php_mysqli_profiler_result_info(MYSQL_RES *res); -extern int php_mysqli_profiler_explain(PR_EXPLAIN *explain, PR_HEADER *header, MYSQL *mysql, char *query); -extern void php_mysqli_profiler_timediff(struct timeval start, struct timeval *elapsed); - zend_class_entry *mysqli_link_class_entry; zend_class_entry *mysqli_stmt_class_entry; zend_class_entry *mysqli_result_class_entry; @@ -375,34 +290,6 @@ ZEND_END_MODULE_GLOBALS(mysqli) #define my_estrdup(x) (x) ? estrdup(x) : NULL #define my_efree(x) if (x) efree(x) -/****** PROFILER MACROS *******/ -#define MYSQLI_PROFILER_STARTTIME(ptr) gettimeofday(&ptr##->header.starttime, NULL) -#define MYSQLI_PROFILER_ELAPSEDTIME(ptr) php_mysqli_profiler_timediff(ptr##->header.starttime, &ptr##->header.elapsedtime) -#define MYSQLI_PROFILER_LIFETIME(ptr) php_mysqli_profiler_timediff((ptr)->starttime, &(ptr)->lifetime) - -#define MYSQLI_PROFILER_NEW(parent, type, time) php_mysqli_profiler_new_object((PR_COMMON *)parent, type, time) -#define MYSQLI_PROFILER_COMMAND_START(cmd,parent)\ -if (MyG(profiler))\ -{\ - cmd = (PR_COMMAND *)php_mysqli_profiler_new_object((PR_COMMON *)parent, MYSQLI_PR_COMMAND,1);\ -} -#define MYSQLI_PROFILER_COMMAND_RETURNLONG(cmd, value)\ -if (MyG(profiler))\ -{\ - char tmp[30];\ - sprintf ((char *)&tmp, "%ld", value);\ - MYSQLI_PROFILER_ELAPSEDTIME(cmd);\ - cmd##->returnvalue = my_estrdup(tmp);\ -} -#define MYSQLI_PROFILER_COMMAND_RETURNSTRING(cmd, value)\ -if (MyG(profiler))\ -{\ - MYSQLI_PROFILER_ELAPSEDTIME(cmd);\ - cmd##->returnvalue = my_estrdup(value);\ -} -#define MYSQLI_PROFILER_EXPLAIN(explain,header,mysql,query) php_mysqli_profiler_explain(explain,header, mysql, query) - - ZEND_EXTERN_MODULE_GLOBALS(mysqli); #endif /* PHP_MYSQLI.H */ |