Skip to content

Commit 4ff9966

Browse files
committed
PHPC-1893: Implement TopologyClosedEvent class
1 parent d9af9df commit 4ff9966

20 files changed

+237
-1
lines changed

config.m4

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ if test "$PHP_MONGODB" != "no"; then
177177
src/MongoDB/Monitoring/ServerClosedEvent.c \
178178
src/MongoDB/Monitoring/ServerOpeningEvent.c \
179179
src/MongoDB/Monitoring/TopologyChangedEvent.c \
180+
src/MongoDB/Monitoring/TopologyClosedEvent.c \
180181
src/MongoDB/Monitoring/TopologyOpeningEvent.c \
181182
src/MongoDB/Monitoring/functions.c \
182183
"

config.w32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ if (PHP_MONGODB != "no") {
122122
MONGODB_ADD_SOURCES("/src/BSON", "Binary.c BinaryInterface.c DBPointer.c Decimal128.c Decimal128Interface.c Int64.c Javascript.c JavascriptInterface.c MaxKey.c MaxKeyInterface.c MinKey.c MinKeyInterface.c ObjectId.c ObjectIdInterface.c Persistable.c Regex.c RegexInterface.c Serializable.c Symbol.c Timestamp.c TimestampInterface.c Type.c Undefined.c Unserializable.c UTCDateTime.c UTCDateTimeInterface.c functions.c");
123123
MONGODB_ADD_SOURCES("/src/MongoDB", "BulkWrite.c ClientEncryption.c Command.c Cursor.c CursorId.c CursorInterface.c Manager.c Query.c ReadConcern.c ReadPreference.c Server.c ServerApi.c ServerDescription.c Session.c TopologyDescription.c WriteConcern.c WriteConcernError.c WriteError.c WriteResult.c");
124124
MONGODB_ADD_SOURCES("/src/MongoDB/Exception", "AuthenticationException.c BulkWriteException.c CommandException.c ConnectionException.c ConnectionTimeoutException.c EncryptionException.c Exception.c ExecutionTimeoutException.c InvalidArgumentException.c LogicException.c RuntimeException.c ServerException.c SSLConnectionException.c UnexpectedValueException.c WriteException.c");
125-
MONGODB_ADD_SOURCES("/src/MongoDB/Monitoring", "CommandFailedEvent.c CommandStartedEvent.c CommandSubscriber.c CommandSucceededEvent.c SDAMSubscriber.c Subscriber.c ServerChangedEvent.c ServerClosedEvent.c ServerOpeningEvent.c TopologyChangedEvent.c TopologyOpeningEvent.c functions.c");
125+
MONGODB_ADD_SOURCES("/src/MongoDB/Monitoring", "CommandFailedEvent.c CommandStartedEvent.c CommandSubscriber.c CommandSucceededEvent.c SDAMSubscriber.c Subscriber.c ServerChangedEvent.c ServerClosedEvent.c ServerOpeningEvent.c TopologyChangedEvent.c TopologyClosedEvent.c TopologyOpeningEvent.c functions.c");
126126
MONGODB_ADD_SOURCES("/src/libmongoc/src/common", PHP_MONGODB_COMMON_SOURCES);
127127
MONGODB_ADD_SOURCES("/src/libmongoc/src/libbson/src/bson", PHP_MONGODB_BSON_SOURCES);
128128
MONGODB_ADD_SOURCES("/src/libmongoc/src/libbson/src/jsonsl", PHP_MONGODB_JSONSL_SOURCES);

php_phongo.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3861,6 +3861,7 @@ PHP_MINIT_FUNCTION(mongodb)
38613861
php_phongo_serverclosedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38623862
php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38633863
php_phongo_topologychangedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3864+
php_phongo_topologyclosedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38643865
php_phongo_topologyopeningevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38653866

38663867
REGISTER_STRING_CONSTANT("MONGODB_VERSION", (char*) PHP_MONGODB_VERSION, CONST_CS | CONST_PERSISTENT);

php_phongo_classes.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,10 @@ static inline php_phongo_topologychangedevent_t* php_topologychangedevent_fetch_
175175
{
176176
return (php_phongo_topologychangedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologychangedevent_t, std));
177177
}
178+
static inline php_phongo_topologyclosedevent_t* php_topologyclosedevent_fetch_object(zend_object* obj)
179+
{
180+
return (php_phongo_topologyclosedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologyclosedevent_t, std));
181+
}
178182
static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_object(zend_object* obj)
179183
{
180184
return (php_phongo_topologyopeningevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologyopeningevent_t, std));
@@ -218,6 +222,7 @@ static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_
218222
#define Z_SERVERCLOSEDEVENT_OBJ_P(zv) (php_serverclosedevent_fetch_object(Z_OBJ_P(zv)))
219223
#define Z_SERVEROPENINGEVENT_OBJ_P(zv) (php_serveropeningevent_fetch_object(Z_OBJ_P(zv)))
220224
#define Z_TOPOLOGYCHANGEDEVENT_OBJ_P(zv) (php_topologychangedevent_fetch_object(Z_OBJ_P(zv)))
225+
#define Z_TOPOLOGYCLOSEDEVENT_OBJ_P(zv) (php_topologyclosedevent_fetch_object(Z_OBJ_P(zv)))
221226
#define Z_TOPOLOGYOPENINGEVENT_OBJ_P(zv) (php_topologyopeningevent_fetch_object(Z_OBJ_P(zv)))
222227

223228
#define Z_OBJ_CLIENTENCRYPTION(zo) (php_clientencryption_fetch_object(zo))
@@ -258,6 +263,7 @@ static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_
258263
#define Z_OBJ_SERVERCLOSEDEVENT(zo) (php_serverclosedevent_fetch_object(zo))
259264
#define Z_OBJ_SERVEROPENINGEVENT(zo) (php_serveropeningevent_fetch_object(zo))
260265
#define Z_OBJ_TOPOLOGYCHANGEDEVENT(zo) (php_topologychangedevent_fetch_object(zo))
266+
#define Z_OBJ_TOPOLOGYCLOSEDEVENT(zo) (php_topologyclosedevent_fetch_object(zo))
261267
#define Z_OBJ_TOPOLOGYOPENINGEVENT(zo) (php_topologyopeningevent_fetch_object(zo))
262268

263269
extern zend_class_entry* php_phongo_clientencryption_ce;
@@ -335,6 +341,7 @@ extern zend_class_entry* php_phongo_serverchangedevent_ce;
335341
extern zend_class_entry* php_phongo_serverclosedevent_ce;
336342
extern zend_class_entry* php_phongo_serveropeningevent_ce;
337343
extern zend_class_entry* php_phongo_topologychangedevent_ce;
344+
extern zend_class_entry* php_phongo_topologyclosedevent_ce;
338345
extern zend_class_entry* php_phongo_topologyopeningevent_ce;
339346

340347
extern void php_phongo_binary_init_ce(INIT_FUNC_ARGS);
@@ -412,6 +419,7 @@ extern void php_phongo_serverchangedevent_init_ce(INIT_FUNC_ARGS);
412419
extern void php_phongo_serverclosedevent_init_ce(INIT_FUNC_ARGS);
413420
extern void php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS);
414421
extern void php_phongo_topologychangedevent_init_ce(INIT_FUNC_ARGS);
422+
extern void php_phongo_topologyclosedevent_init_ce(INIT_FUNC_ARGS);
415423
extern void php_phongo_topologyopeningevent_init_ce(INIT_FUNC_ARGS);
416424

417425
/* Shared function entries for disabling constructors and unserialize() */

php_phongo_structs.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,11 @@ typedef struct {
314314
zend_object std;
315315
} php_phongo_topologychangedevent_t;
316316

317+
typedef struct {
318+
bson_oid_t topology_id;
319+
zend_object std;
320+
} php_phongo_topologyclosedevent_t;
321+
317322
typedef struct {
318323
bson_oid_t topology_id;
319324
zend_object std;
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
/*
2+
* Copyright 2021-present MongoDB, Inc.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#include <php.h>
18+
#include <Zend/zend_interfaces.h>
19+
20+
#ifdef HAVE_CONFIG_H
21+
#include "config.h"
22+
#endif
23+
24+
#include "phongo_compat.h"
25+
#include "php_phongo.h"
26+
27+
zend_class_entry* php_phongo_topologyclosedevent_ce;
28+
29+
/* {{{ proto MongoDB\BSON\ObjectId TopologyClosedEvent::getTopologyId()
30+
Returns this event's topology id */
31+
static PHP_METHOD(TopologyClosedEvent, getTopologyId)
32+
{
33+
php_phongo_objectid_t* topology_id;
34+
php_phongo_topologyclosedevent_t* intern = Z_TOPOLOGYCLOSEDEVENT_OBJ_P(getThis());
35+
36+
PHONGO_PARSE_PARAMETERS_NONE();
37+
38+
object_init_ex(return_value, php_phongo_objectid_ce);
39+
40+
topology_id = Z_OBJECTID_OBJ_P(return_value);
41+
bson_oid_to_string(&intern->topology_id, topology_id->oid);
42+
topology_id->initialized = true;
43+
} /* }}} */
44+
45+
/* {{{ MongoDB\Driver\Monitoring\TopologyClosedEvent function entries */
46+
ZEND_BEGIN_ARG_INFO_EX(ai_TopologyClosedEvent_void, 0, 0, 0)
47+
ZEND_END_ARG_INFO()
48+
49+
static zend_function_entry php_phongo_topologyclosedevent_me[] = {
50+
/* clang-format off */
51+
ZEND_NAMED_ME(__construct, PHP_FN(MongoDB_disabled___construct), ai_TopologyClosedEvent_void, ZEND_ACC_PRIVATE | ZEND_ACC_FINAL)
52+
PHP_ME(TopologyClosedEvent, getTopologyId, ai_TopologyClosedEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
53+
ZEND_NAMED_ME(__wakeup, PHP_FN(MongoDB_disabled___wakeup), ai_TopologyClosedEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
54+
PHP_FE_END
55+
/* clang-format on */
56+
};
57+
/* }}} */
58+
59+
/* {{{ MongoDB\Driver\Monitoring\TopologyClosedEvent object handlers */
60+
static zend_object_handlers php_phongo_handler_topologyclosedevent;
61+
62+
static void php_phongo_topologyclosedevent_free_object(zend_object* object) /* {{{ */
63+
{
64+
php_phongo_topologyclosedevent_t* intern = Z_OBJ_TOPOLOGYCLOSEDEVENT(object);
65+
66+
zend_object_std_dtor(&intern->std);
67+
} /* }}} */
68+
69+
static zend_object* php_phongo_topologyclosedevent_create_object(zend_class_entry* class_type) /* {{{ */
70+
{
71+
php_phongo_topologyclosedevent_t* intern = NULL;
72+
73+
intern = PHONGO_ALLOC_OBJECT_T(php_phongo_topologyclosedevent_t, class_type);
74+
75+
zend_object_std_init(&intern->std, class_type);
76+
object_properties_init(&intern->std, class_type);
77+
78+
intern->std.handlers = &php_phongo_handler_topologyclosedevent;
79+
80+
return &intern->std;
81+
} /* }}} */
82+
83+
static HashTable* php_phongo_topologyclosedevent_get_debug_info(phongo_compat_object_handler_type* object, int* is_temp) /* {{{ */
84+
{
85+
php_phongo_topologyclosedevent_t* intern;
86+
zval retval = ZVAL_STATIC_INIT;
87+
char topology_id[25];
88+
89+
intern = Z_OBJ_TOPOLOGYCLOSEDEVENT(PHONGO_COMPAT_GET_OBJ(object));
90+
*is_temp = 1;
91+
array_init_size(&retval, 1);
92+
93+
bson_oid_to_string(&intern->topology_id, topology_id);
94+
ADD_ASSOC_STRING(&retval, "topologyId", topology_id);
95+
96+
return Z_ARRVAL(retval);
97+
} /* }}} */
98+
/* }}} */
99+
100+
void php_phongo_topologyclosedevent_init_ce(INIT_FUNC_ARGS) /* {{{ */
101+
{
102+
zend_class_entry ce;
103+
(void) type;
104+
(void) module_number;
105+
106+
INIT_NS_CLASS_ENTRY(ce, "MongoDB\\Driver\\Monitoring", "TopologyClosedEvent", php_phongo_topologyclosedevent_me);
107+
php_phongo_topologyclosedevent_ce = zend_register_internal_class(&ce);
108+
php_phongo_topologyclosedevent_ce->create_object = php_phongo_topologyclosedevent_create_object;
109+
PHONGO_CE_FINAL(php_phongo_topologyclosedevent_ce);
110+
PHONGO_CE_DISABLE_SERIALIZATION(php_phongo_topologyclosedevent_ce);
111+
112+
memcpy(&php_phongo_handler_topologyclosedevent, phongo_get_std_object_handlers(), sizeof(zend_object_handlers));
113+
php_phongo_handler_topologyclosedevent.get_debug_info = php_phongo_topologyclosedevent_get_debug_info;
114+
php_phongo_handler_topologyclosedevent.free_obj = php_phongo_topologyclosedevent_free_object;
115+
php_phongo_handler_topologyclosedevent.offset = XtOffsetOf(php_phongo_topologyclosedevent_t, std);
116+
117+
return;
118+
} /* }}} */
119+
120+
/*
121+
* Local variables:
122+
* tab-width: 4
123+
* c-basic-offset: 4
124+
* End:
125+
* vim600: noet sw=4 ts=4 fdm=marker
126+
* vim<600: noet sw=4 ts=4
127+
*/

src/phongo_apm.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,34 @@ static void phongo_apm_topology_changed(const mongoc_apm_topology_changed_t* eve
395395
FREE_HASHTABLE(subscribers);
396396
}
397397

398+
static void phongo_apm_topology_closed(const mongoc_apm_topology_closed_t* event)
399+
{
400+
mongoc_client_t* client;
401+
HashTable* subscribers;
402+
php_phongo_topologyclosedevent_t* p_event;
403+
zval z_event;
404+
405+
client = mongoc_apm_topology_closed_get_context(event);
406+
subscribers = phongo_apm_get_subscribers_to_notify(php_phongo_sdamsubscriber_ce, client);
407+
408+
/* Return early if there are no APM subscribers to notify */
409+
if (zend_hash_num_elements(subscribers) == 0) {
410+
goto cleanup;
411+
}
412+
413+
object_init_ex(&z_event, php_phongo_topologyclosedevent_ce);
414+
p_event = Z_TOPOLOGYCLOSEDEVENT_OBJ_P(&z_event);
415+
416+
mongoc_apm_topology_closed_get_topology_id(event, &p_event->topology_id);
417+
418+
phongo_apm_dispatch_event(subscribers, "topologyClosed", &z_event);
419+
zval_ptr_dtor(&z_event);
420+
421+
cleanup:
422+
zend_hash_destroy(subscribers);
423+
FREE_HASHTABLE(subscribers);
424+
}
425+
398426
static void phongo_apm_topology_opening(const mongoc_apm_topology_opening_t* event)
399427
{
400428
mongoc_client_t* client;
@@ -439,6 +467,7 @@ bool phongo_apm_set_callbacks(mongoc_client_t* client)
439467
mongoc_apm_set_server_closed_cb(callbacks, phongo_apm_server_closed);
440468
mongoc_apm_set_server_opening_cb(callbacks, phongo_apm_server_opening);
441469
mongoc_apm_set_topology_changed_cb(callbacks, phongo_apm_topology_changed);
470+
mongoc_apm_set_topology_closed_cb(callbacks, phongo_apm_topology_closed);
442471
mongoc_apm_set_topology_opening_cb(callbacks, phongo_apm_topology_opening);
443472

444473
retval = mongoc_client_set_apm_callbacks(client, callbacks, client);

tests/apm/monitoring-serverChanged-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
3333

3434
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event) {}
3535

36+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
37+
3638
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
3739
}
3840

tests/apm/monitoring-serverClosed-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
3131

3232
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event) {}
3333

34+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
35+
3436
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
3537
}
3638

tests/apm/monitoring-serverOpening-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
3131

3232
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event) {}
3333

34+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
35+
3436
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
3537
}
3638

tests/apm/monitoring-topologyChanged-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
3131
echo "- getPreviousDescription() returns a TopologyDescription: ", ($event->getPreviousDescription() instanceof MongoDB\Driver\TopologyDescription) ? 'yes' : 'no', "\n";
3232
}
3333

34+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
35+
3436
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
3537
}
3638

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
--TEST--
2+
MongoDB\Driver\Monitoring\TopologyClosedEvent
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php skip_if_not_live(); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$m = create_test_manager(URI, [], ['disableClientPersistence' => true]);
11+
12+
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
13+
{
14+
public function serverChanged(MongoDB\Driver\Monitoring\ServerChangedEvent $event) {}
15+
16+
public function serverClosed(MongoDB\Driver\Monitoring\ServerClosedEvent $event) {}
17+
18+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
19+
20+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event) {}
21+
22+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event)
23+
{
24+
echo "- getTopologyId() returns an ObjectId: ", ($event->getTopologyId() instanceof MongoDB\BSON\ObjectId) ? 'yes' : 'no', "\n";
25+
}
26+
27+
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
28+
}
29+
30+
$subscriber = new MySubscriber;
31+
MongoDB\Driver\Monitoring\addSubscriber($subscriber);
32+
33+
$command = new MongoDB\Driver\Command(['ping' => 1]);
34+
$m->executeCommand(DATABASE_NAME, $command);
35+
36+
?>
37+
===DONE===
38+
<?php exit(0); ?>
39+
--EXPECT--
40+
- getTopologyId() returns an ObjectId: yes
41+
===DONE===

tests/apm/monitoring-topologyOpening-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
1818
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
1919

2020
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event) {}
21+
22+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
2123

2224
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event)
2325
{

tests/topologyDescription/topologyDescription-debug-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
2222
$this->topologyDescription = $event->getNewDescription();
2323
}
2424

25+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
26+
2527
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
2628

2729
public function getTopologyDescription()

tests/topologyDescription/topologyDescription-getServers-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
2222
$this->topologyDescription = $event->getNewDescription();
2323
}
2424

25+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
26+
2527
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
2628

2729
public function getTopologyDescription()

tests/topologyDescription/topologyDescription-getType-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
2222
$this->topologyDescription = $event->getNewDescription();
2323
}
2424

25+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
26+
2527
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
2628

2729
public function getTopologyDescription()

tests/topologyDescription/topologyDescription-hasReadableServer-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
2222
$this->topologyDescription = $event->getNewDescription();
2323
}
2424

25+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
26+
2527
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
2628

2729
public function getTopologyDescription()

tests/topologyDescription/topologyDescription-hasReadableServer-002.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
2222
$this->topologyDescription = $event->getNewDescription();
2323
}
2424

25+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
26+
2527
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
2628

2729
public function getTopologyDescription()

tests/topologyDescription/topologyDescription-hasReadableServer_error-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
2222
$this->topologyDescription = $event->getNewDescription();
2323
}
2424

25+
public function topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event) {}
26+
2527
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
2628

2729
public function getTopologyDescription()

0 commit comments

Comments
 (0)