@@ -100,6 +100,29 @@ PHP_METHOD(CommandFailedEvent, getOperationId)
100100 PHONGO_RETVAL_STRING (int_as_string );
101101} /* }}} */
102102
103+ /* {{{ proto stdClass CommandFailedEvent::getReply()
104+ Returns the reply document associated with the event */
105+ PHP_METHOD (CommandFailedEvent , getReply )
106+ {
107+ php_phongo_commandfailedevent_t * intern ;
108+ php_phongo_bson_state state = PHONGO_BSON_STATE_INITIALIZER ;
109+ SUPPRESS_UNUSED_WARNING (return_value_ptr )
110+ SUPPRESS_UNUSED_WARNING (return_value_used )
111+
112+ intern = Z_COMMANDFAILEDEVENT_OBJ_P (getThis ());
113+
114+ if (zend_parse_parameters_none () == FAILURE ) {
115+ return ;
116+ }
117+
118+ php_phongo_bson_to_zval_ex (bson_get_data (intern -> reply ), intern -> reply -> len , & state );
119+ #if PHP_VERSION_ID >= 70000
120+ RETURN_ZVAL (& state .zchild , 0 , 1 );
121+ #else
122+ RETURN_ZVAL (state .zchild , 0 , 1 );
123+ #endif
124+ } /* }}} */
125+
103126/* {{{ proto string CommandFailedEvent::getRequestId()
104127 Returns the event's request ID */
105128PHP_METHOD (CommandFailedEvent , getRequestId )
@@ -153,6 +176,7 @@ static zend_function_entry php_phongo_commandfailedevent_me[] = {
153176 PHP_ME (CommandFailedEvent , getError , ai_CommandFailedEvent_void , ZEND_ACC_PUBLIC | ZEND_ACC_FINAL )
154177 PHP_ME (CommandFailedEvent , getDurationMicros , ai_CommandFailedEvent_void , ZEND_ACC_PUBLIC | ZEND_ACC_FINAL )
155178 PHP_ME (CommandFailedEvent , getOperationId , ai_CommandFailedEvent_void , ZEND_ACC_PUBLIC | ZEND_ACC_FINAL )
179+ PHP_ME (CommandFailedEvent , getReply , ai_CommandFailedEvent_void , ZEND_ACC_PUBLIC | ZEND_ACC_FINAL )
156180 PHP_ME (CommandFailedEvent , getRequestId , ai_CommandFailedEvent_void , ZEND_ACC_PUBLIC | ZEND_ACC_FINAL )
157181 PHP_ME (CommandFailedEvent , getServer , ai_CommandFailedEvent_void , ZEND_ACC_PUBLIC | ZEND_ACC_FINAL )
158182 ZEND_NAMED_ME (__wakeup , PHP_FN (MongoDB_disabled___wakeup ), ai_CommandFailedEvent_void , ZEND_ACC_PUBLIC | ZEND_ACC_FINAL )
@@ -174,6 +198,10 @@ static void php_phongo_commandfailedevent_free_object(phongo_free_object_arg* ob
174198 zval_ptr_dtor (& intern -> z_error );
175199 }
176200
201+ if (intern -> reply ) {
202+ bson_destroy (intern -> reply );
203+ }
204+
177205 if (intern -> command_name ) {
178206 efree (intern -> command_name );
179207 }
@@ -212,6 +240,7 @@ static HashTable* php_phongo_commandfailedevent_get_debug_info(zval* object, int
212240 php_phongo_commandfailedevent_t * intern ;
213241 zval retval = ZVAL_STATIC_INIT ;
214242 char operation_id [20 ], request_id [20 ];
243+ php_phongo_bson_state reply_state = PHONGO_BSON_STATE_INITIALIZER ;
215244
216245 intern = Z_COMMANDFAILEDEVENT_OBJ_P (object );
217246 * is_temp = 1 ;
@@ -231,6 +260,13 @@ static HashTable* php_phongo_commandfailedevent_get_debug_info(zval* object, int
231260 sprintf (operation_id , "%" PRIu64 , intern -> operation_id );
232261 ADD_ASSOC_STRING (& retval , "operationId" , operation_id );
233262
263+ php_phongo_bson_to_zval_ex (bson_get_data (intern -> reply ), intern -> reply -> len , & reply_state );
264+ #if PHP_VERSION_ID >= 70000
265+ ADD_ASSOC_ZVAL (& retval , "reply" , & reply_state .zchild );
266+ #else
267+ ADD_ASSOC_ZVAL (& retval , "reply" , reply_state .zchild );
268+ #endif
269+
234270 sprintf (request_id , "%" PRIu64 , intern -> request_id );
235271 ADD_ASSOC_STRING (& retval , "requestId" , request_id );
236272
0 commit comments