X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fphp_pqres.h;h=acc03ccabd357e5a4d536856f239c5236be4eb3b;hb=baafbf6c24c8f272b714d3829857eca3833bca3e;hp=f5b9b6e10d3968d1ad84ff446cba89d11ffb0810;hpb=d613997b3072b8093bca3fe9d8aca115e2a579aa;p=m6w6%2Fext-pq diff --git a/src/php_pqres.h b/src/php_pqres.h index f5b9b6e..acc03cc 100644 --- a/src/php_pqres.h +++ b/src/php_pqres.h @@ -15,15 +15,25 @@ #define PHP_PQRES_H #include "php_pqconn.h" + typedef enum php_pqres_fetch { PHP_PQRES_FETCH_ARRAY, PHP_PQRES_FETCH_ASSOC, PHP_PQRES_FETCH_OBJECT } php_pqres_fetch_t; +#define PHP_PQRES_CONV_BOOL 0x0001 +#define PHP_PQRES_CONV_INT 0x0002 +#define PHP_PQRES_CONV_FLOAT 0x0004 +#define PHP_PQRES_CONV_SCALAR 0x000f +#define PHP_PQRES_CONV_ARRAY 0x0010 +#define PHP_PQRES_CONV_DATETIME 0x0020 +#define PHP_PQRES_CONV_JSON 0x0100 +#define PHP_PQRES_CONV_ALL 0xffff + typedef struct php_pqres_iterator { zend_object_iterator zi; - zval *current_val; + zval current_val; unsigned index; php_pqres_fetch_t fetch_type; } php_pqres_iterator_t; @@ -33,36 +43,36 @@ typedef struct php_pqres { php_pqres_iterator_t *iter; HashTable bound; HashTable converters; - unsigned default_fetch_type:2; + unsigned auto_convert; + php_pqres_fetch_t default_fetch_type; } php_pqres_t; typedef struct php_pqres_object { - zend_object zo; - zend_object_value zv; - HashTable *prophandler; - php_pqres_t *intern; + PHP_PQ_OBJ_DECL(php_pqres_t *) } php_pqres_object_t; -STATUS php_pqres_success(PGresult *res TSRMLS_DC); -void php_pqres_init_instance_data(PGresult *res, php_pqconn_object_t *obj, php_pqres_object_t **ptr TSRMLS_DC); -zval *php_pqres_row_to_zval(PGresult *res, unsigned row, php_pqres_fetch_t fetch_type, zval **data_ptr TSRMLS_DC); +extern ZEND_RESULT_CODE php_pqres_success(PGresult *res); +extern php_pqres_object_t *php_pqres_init_instance_data(PGresult *res, php_pqconn_object_t *obj); +extern zval *php_pqres_row_to_zval(PGresult *res, unsigned row, php_pqres_fetch_t fetch_type, zval *data); +extern zval *php_pqres_typed_zval(php_pqres_t *res, Oid typ, zval *zv); +extern php_pqres_fetch_t php_pqres_fetch_type(php_pqres_t *res); #include "php_pq_object.h" #include "php_pqconn_event.h" #define PHP_PQclear(_r) do { \ php_pqres_object_t *_o = PQresultInstanceData((_r), php_pqconn_event); \ if (_o) { \ - php_pq_object_delref(_o TSRMLS_CC); \ + php_pq_object_delref(_o); \ } else { \ PQclear(_r); \ } \ } while(0) -zend_class_entry *php_pqres_class_entry; -zend_object_value php_pqres_create_object_ex(zend_class_entry *ce, php_pqres_t *intern, php_pqres_object_t **ptr TSRMLS_DC); +extern zend_class_entry *php_pqres_class_entry; +extern php_pqres_object_t *php_pqres_create_object_ex(zend_class_entry *ce, php_pqres_t *intern); -PHP_MINIT_FUNCTION(pqres); -PHP_MSHUTDOWN_FUNCTION(pqres); +extern PHP_MINIT_FUNCTION(pqres); +extern PHP_MSHUTDOWN_FUNCTION(pqres); #endif