+PHP_METHOD(HttpMessage, toStream)
+{
+ zval *zstream;
+
+ if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream)) {
+ php_http_message_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
+ php_stream *s;
+
+ php_stream_from_zval(s, &zstream);
+
+ if (!obj->message) {
+ obj->message = php_http_message_init(NULL, 0 TSRMLS_CC);
+ }
+
+ php_http_message_to_callback(obj->message, (php_http_pass_callback_t) _php_stream_write, s);
+ }
+}
+
+PHP_METHOD(HttpMessage, toCallback)
+{
+ php_http_pass_fcall_arg_t fcd;
+
+ if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "f", &fcd.fci, &fcd.fcc)) {
+ php_http_message_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ fcd.fcz = getThis();
+ Z_ADDREF_P(fcd.fcz);
+ TSRMLS_SET_CTX(fcd.ts);
+
+ php_http_message_to_callback(obj->message, php_http_pass_fcall_callback, &fcd);
+ zend_fcall_info_args_clear(&fcd.fci, 1);
+
+ zval_ptr_dtor(&fcd.fcz);
+ RETURN_TRUE;
+ }
+ RETURN_FALSE;
+}
+