X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_message_object.h;h=1e95c7490f1f633ebacf46947b13f8981bb2170c;hp=46a1dd536283f0b7ed6ffb6647af40a4977abc5b;hb=dd18f054d481e2d24f766db8f36e8e721950d68c;hpb=e434da0fad7db62d86c236c68b22150165f2647a diff --git a/php_http_message_object.h b/php_http_message_object.h index 46a1dd5..1e95c74 100644 --- a/php_http_message_object.h +++ b/php_http_message_object.h @@ -24,36 +24,50 @@ typedef struct { zend_object zo; http_message *message; - zval _tmp_property; + zend_object_value parent; } http_message_object; extern zend_class_entry *http_message_object_ce; extern zend_function_entry http_message_object_fe[]; -#define http_message_object_init _http_message_object_init +#define http_message_object_init() _http_message_object_init(INIT_FUNC_ARGS_PASSTHRU) extern void _http_message_object_init(INIT_FUNC_ARGS); #define http_message_object_new _http_message_object_new extern zend_object_value _http_message_object_new(zend_class_entry *ce TSRMLS_DC); #define http_message_object_new_ex(ce, msg) _http_message_object_new_ex(ce, msg TSRMLS_CC) #define http_message_object_from_msg(msg) _http_message_object_new_ex(http_message_object_ce, msg TSRMLS_CC) extern zend_object_value _http_message_object_new_ex(zend_class_entry *ce, http_message *msg TSRMLS_DC); +#define http_message_object_clone(zobj) _http_message_object_clone(zobj TSRMLS_CC) +extern zend_object_value _http_message_object_clone(zval *object TSRMLS_DC); #define http_message_object_free _http_message_object_free extern void _http_message_object_free(zend_object *object TSRMLS_DC); -#define HTTP_MSG_PROPHASH_TYPE 276192743LU +#define HTTP_MSG_PROPHASH_TYPE 276192743LU #define HTTP_MSG_PROPHASH_HTTP_VERSION 1138628683LU -#define HTTP_MSG_PROPHASH_RAW 2090679983LU -#define HTTP_MSG_PROPHASH_BODY 254474387LU +#define HTTP_MSG_PROPHASH_BODY 254474387LU #define HTTP_MSG_PROPHASH_HEADERS 3199929089LU -#define HTTP_MSG_PROPHASH_NESTED_MESSAGE 3652857165LU +#define HTTP_MSG_PROPHASH_PARENT_MESSAGE 2105714836LU #define HTTP_MSG_PROPHASH_REQUEST_METHOD 1669022159LU #define HTTP_MSG_PROPHASH_REQUEST_URI 3208695486LU #define HTTP_MSG_PROPHASH_RESPONSE_STATUS 3857097400LU #define HTTP_MSG_PROPHASH_RESPONSE_CODE 1305615119LU +#define HTTP_MSG_CHECK_OBJ(obj, dofail) \ + if (!(obj)->message) { \ + http_error(E_WARNING, HTTP_E_MSG, "HttpMessage is empty"); \ + dofail; \ + } +#define HTTP_MSG_CHECK_STD() HTTP_MSG_CHECK_OBJ(obj, RETURN_FALSE) + +#define HTTP_MSG_INIT_OBJ(obj) \ + if (!(obj)->message) { \ + (obj)->message = http_message_new(); \ + } +#define HTTP_MSG_INIT_STD() HTTP_MSG_INIT_OBJ(obj) + PHP_METHOD(HttpMessage, __construct); -PHP_METHOD(HttpMessage, setRaw); PHP_METHOD(HttpMessage, getBody); +PHP_METHOD(HttpMessage, setBody); PHP_METHOD(HttpMessage, getHeaders); PHP_METHOD(HttpMessage, setHeaders); PHP_METHOD(HttpMessage, addHeaders); @@ -67,7 +81,8 @@ PHP_METHOD(HttpMessage, getRequestUri); PHP_METHOD(HttpMessage, setRequestUri); PHP_METHOD(HttpMessage, getHttpVersion); PHP_METHOD(HttpMessage, setHttpVersion); -PHP_METHOD(HttpMessage, getNestedMessage); +PHP_METHOD(HttpMessage, getParentMessage); +PHP_METHOD(HttpMessage, send); PHP_METHOD(HttpMessage, toString); PHP_METHOD(HttpMessage, fromString);