X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=blobdiff_plain;f=src%2Fphp_pqconn.h;h=015d9f552c47ef60951a6ba99991c70f445af2ce;hp=c9f1e15d5221a1cccc0c783b07eeb24cf28e53a1;hb=cc619cb8b6a15e1ea14bedf713cbcd645a0ee7ca;hpb=9255d2d54bca41644cf3588e4e4259a1855b58d7 diff --git a/src/php_pqconn.h b/src/php_pqconn.h index c9f1e15..015d9f5 100644 --- a/src/php_pqconn.h +++ b/src/php_pqconn.h @@ -18,7 +18,9 @@ #define PHP_PQCONN_PERSISTENT 0x02 #include +#include "php_pq_object.h" #include "php_pq_callback.h" +#include "php_pq_object.h" #include "php_pq_params.h" typedef struct php_pqconn { @@ -26,38 +28,41 @@ typedef struct php_pqconn { int (*poller)(PGconn *); php_resource_factory_t factory; HashTable listeners; + HashTable statements; HashTable converters; HashTable eventhandlers; php_pq_callback_t onevent; unsigned unbuffered:1; + unsigned default_fetch_type:2; + unsigned default_txn_isolation:2; + unsigned default_txn_readonly:1; + unsigned default_txn_deferrable:1; + unsigned default_auto_convert:16; } php_pqconn_t; typedef struct php_pqconn_object { - zend_object zo; - zend_object_value zv; - HashTable *prophandler; - php_pqconn_t *intern; + PHP_PQ_OBJ_DECL(php_pqconn_t *) } php_pqconn_object_t; typedef struct php_pqconn_resource_factory_data { char *dsn; - long flags; + unsigned long flags; } php_pqconn_resource_factory_data_t; -php_resource_factory_ops_t *php_pqconn_get_resource_factory_ops(void); +extern php_resource_factory_ops_t *php_pqconn_get_resource_factory_ops(void); -zend_class_entry *php_pqconn_class_entry; -zend_object_value php_pqconn_create_object_ex(zend_class_entry *ce, php_pqconn_t *intern, php_pqconn_object_t **ptr TSRMLS_DC); -void php_pqconn_notify_listeners(php_pqconn_object_t *obj TSRMLS_DC); -STATUS php_pqconn_prepare(zval *object, php_pqconn_object_t *obj, const char *name, const char *query, php_pq_params_t *params TSRMLS_DC); -STATUS php_pqconn_prepare_async(zval *object, php_pqconn_object_t *obj, const char *name, const char *query, php_pq_params_t *params TSRMLS_DC); -STATUS php_pqconn_start_transaction(zval *zconn, php_pqconn_object_t *conn_obj, long isolation, zend_bool readonly, zend_bool deferrable TSRMLS_DC); -STATUS php_pqconn_start_transaction_async(zval *zconn, php_pqconn_object_t *conn_obj, long isolation, zend_bool readonly, zend_bool deferrable TSRMLS_DC); -STATUS php_pqconn_declare(zval *object, php_pqconn_object_t *obj, const char *decl TSRMLS_DC); -STATUS php_pqconn_declare_async(zval *object, php_pqconn_object_t *obj, const char *decl TSRMLS_DC); +extern zend_class_entry *php_pqconn_class_entry; +extern php_pqconn_object_t *php_pqconn_create_object_ex(zend_class_entry *ce, php_pqconn_t *intern); +extern void php_pqconn_notify_listeners(php_pqconn_object_t *obj); +extern ZEND_RESULT_CODE php_pqconn_prepare(zval *object, php_pqconn_object_t *obj, const char *name, const char *query, php_pq_params_t *params); +extern ZEND_RESULT_CODE php_pqconn_prepare_async(zval *object, php_pqconn_object_t *obj, const char *name, const char *query, php_pq_params_t *params); +extern ZEND_RESULT_CODE php_pqconn_start_transaction(zval *zconn, php_pqconn_object_t *conn_obj, long isolation, zend_bool readonly, zend_bool deferrable); +extern ZEND_RESULT_CODE php_pqconn_start_transaction_async(zval *zconn, php_pqconn_object_t *conn_obj, long isolation, zend_bool readonly, zend_bool deferrable); +extern ZEND_RESULT_CODE php_pqconn_declare(zval *object, php_pqconn_object_t *obj, const char *decl); +extern ZEND_RESULT_CODE php_pqconn_declare_async(zval *object, php_pqconn_object_t *obj, const char *decl); -PHP_MINIT_FUNCTION(pqconn); -PHP_MSHUTDOWN_FUNCTION(pqconn); +extern PHP_MINIT_FUNCTION(pqconn); +extern PHP_MSHUTDOWN_FUNCTION(pqconn); #endif