Skip to content

Commit c401be8

Browse files
committed
PHPC-1893: Implement ServerOpeningEvent class
1 parent e3d105a commit c401be8

17 files changed

+250
-2
lines changed

config.m4

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ if test "$PHP_MONGODB" != "no"; then
173173
src/MongoDB/Monitoring/CommandSucceededEvent.c \
174174
src/MongoDB/Monitoring/SDAMSubscriber.c \
175175
src/MongoDB/Monitoring/Subscriber.c \
176+
src/MongoDB/Monitoring/ServerOpeningEvent.c \
176177
src/MongoDB/Monitoring/TopologyChangedEvent.c \
177178
src/MongoDB/Monitoring/TopologyOpeningEvent.c \
178179
src/MongoDB/Monitoring/functions.c \

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 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 ServerOpeningEvent.c TopologyChangedEvent.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
@@ -3857,6 +3857,7 @@ PHP_MINIT_FUNCTION(mongodb)
38573857
php_phongo_commandstartedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38583858
php_phongo_commandsucceededevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38593859
php_phongo_sdamsubscriber_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3860+
php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38603861
php_phongo_topologychangedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38613862
php_phongo_topologyopeningevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
38623863

php_phongo_classes.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,10 @@ static inline php_phongo_commandsucceededevent_t* php_commandsucceededevent_fetc
159159
{
160160
return (php_phongo_commandsucceededevent_t*) ((char*) obj - XtOffsetOf(php_phongo_commandsucceededevent_t, std));
161161
}
162+
static inline php_phongo_serveropeningevent_t* php_serveropeningevent_fetch_object(zend_object* obj)
163+
{
164+
return (php_phongo_serveropeningevent_t*) ((char*) obj - XtOffsetOf(php_phongo_serveropeningevent_t, std));
165+
}
162166
static inline php_phongo_topologychangedevent_t* php_topologychangedevent_fetch_object(zend_object* obj)
163167
{
164168
return (php_phongo_topologychangedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologychangedevent_t, std));
@@ -202,6 +206,7 @@ static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_
202206
#define Z_COMMANDFAILEDEVENT_OBJ_P(zv) (php_commandfailedevent_fetch_object(Z_OBJ_P(zv)))
203207
#define Z_COMMANDSTARTEDEVENT_OBJ_P(zv) (php_commandstartedevent_fetch_object(Z_OBJ_P(zv)))
204208
#define Z_COMMANDSUCCEEDEDEVENT_OBJ_P(zv) (php_commandsucceededevent_fetch_object(Z_OBJ_P(zv)))
209+
#define Z_SERVEROPENINGEVENT_OBJ_P(zv) (php_serveropeningevent_fetch_object(Z_OBJ_P(zv)))
205210
#define Z_TOPOLOGYCHANGEDEVENT_OBJ_P(zv) (php_topologychangedevent_fetch_object(Z_OBJ_P(zv)))
206211
#define Z_TOPOLOGYOPENINGEVENT_OBJ_P(zv) (php_topologyopeningevent_fetch_object(Z_OBJ_P(zv)))
207212

@@ -239,6 +244,7 @@ static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_
239244
#define Z_OBJ_COMMANDFAILEDEVENT(zo) (php_commandfailedevent_fetch_object(zo))
240245
#define Z_OBJ_COMMANDSTARTEDEVENT(zo) (php_commandstartedevent_fetch_object(zo))
241246
#define Z_OBJ_COMMANDSUCCEEDEDEVENT(zo) (php_commandsucceededevent_fetch_object(zo))
247+
#define Z_OBJ_SERVEROPENINGEVENT(zo) (php_serveropeningevent_fetch_object(zo))
242248
#define Z_OBJ_TOPOLOGYCHANGEDEVENT(zo) (php_topologychangedevent_fetch_object(zo))
243249
#define Z_OBJ_TOPOLOGYOPENINGEVENT(zo) (php_topologyopeningevent_fetch_object(zo))
244250

@@ -313,6 +319,7 @@ extern zend_class_entry* php_phongo_commandsubscriber_ce;
313319
extern zend_class_entry* php_phongo_commandsucceededevent_ce;
314320
extern zend_class_entry* php_phongo_sdamsubscriber_ce;
315321
extern zend_class_entry* php_phongo_subscriber_ce;
322+
extern zend_class_entry* php_phongo_serveropeningevent_ce;
316323
extern zend_class_entry* php_phongo_topologychangedevent_ce;
317324
extern zend_class_entry* php_phongo_topologyopeningevent_ce;
318325

@@ -387,6 +394,7 @@ extern void php_phongo_commandsubscriber_init_ce(INIT_FUNC_ARGS);
387394
extern void php_phongo_commandsucceededevent_init_ce(INIT_FUNC_ARGS);
388395
extern void php_phongo_sdamsubscriber_init_ce(INIT_FUNC_ARGS);
389396
extern void php_phongo_subscriber_init_ce(INIT_FUNC_ARGS);
397+
extern void php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS);
390398
extern void php_phongo_topologychangedevent_init_ce(INIT_FUNC_ARGS);
391399
extern void php_phongo_topologyopeningevent_init_ce(INIT_FUNC_ARGS);
392400

php_phongo_structs.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,12 @@ typedef struct {
284284
zend_object std;
285285
} php_phongo_commandsucceededevent_t;
286286

287+
typedef struct {
288+
bson_oid_t topology_id;
289+
const mongoc_host_list_t* host;
290+
zend_object std;
291+
} php_phongo_serveropeningevent_t;
292+
287293
typedef struct {
288294
bson_oid_t topology_id;
289295
mongoc_topology_description_t* new_topology_description;
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
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_serveropeningevent_ce;
28+
29+
/* {{{ proto string ServerOpeningEvent::getHost()
30+
Returns this event's host */
31+
static PHP_METHOD(ServerOpeningEvent, getHost)
32+
{
33+
php_phongo_serveropeningevent_t* intern = Z_SERVEROPENINGEVENT_OBJ_P(getThis());
34+
35+
PHONGO_PARSE_PARAMETERS_NONE();
36+
37+
RETVAL_STRING((intern->host)->host);
38+
} /* }}} */
39+
40+
/* {{{ proto MongoDB\BSON\ObjectId ServerOpeningEvent::getTopologyId()
41+
Returns this event's topology id */
42+
static PHP_METHOD(ServerOpeningEvent, getTopologyId)
43+
{
44+
php_phongo_objectid_t* topology_id;
45+
php_phongo_serveropeningevent_t* intern = Z_SERVEROPENINGEVENT_OBJ_P(getThis());
46+
47+
PHONGO_PARSE_PARAMETERS_NONE();
48+
49+
object_init_ex(return_value, php_phongo_objectid_ce);
50+
51+
topology_id = Z_OBJECTID_OBJ_P(return_value);
52+
bson_oid_to_string(&intern->topology_id, topology_id->oid);
53+
topology_id->initialized = true;
54+
} /* }}} */
55+
56+
/* {{{ MongoDB\Driver\Monitoring\ServerOpeningEvent function entries */
57+
ZEND_BEGIN_ARG_INFO_EX(ai_ServerOpeningEvent_void, 0, 0, 0)
58+
ZEND_END_ARG_INFO()
59+
60+
static zend_function_entry php_phongo_serveropeningevent_me[] = {
61+
/* clang-format off */
62+
ZEND_NAMED_ME(__construct, PHP_FN(MongoDB_disabled___construct), ai_ServerOpeningEvent_void, ZEND_ACC_PRIVATE | ZEND_ACC_FINAL)
63+
PHP_ME(ServerOpeningEvent, getHost, ai_ServerOpeningEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
64+
PHP_ME(ServerOpeningEvent, getTopologyId, ai_ServerOpeningEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
65+
ZEND_NAMED_ME(__wakeup, PHP_FN(MongoDB_disabled___wakeup), ai_ServerOpeningEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
66+
PHP_FE_END
67+
/* clang-format on */
68+
};
69+
/* }}} */
70+
71+
/* {{{ MongoDB\Driver\Monitoring\ServerOpeningEvent object handlers */
72+
static zend_object_handlers php_phongo_handler_serveropeningevent;
73+
74+
static void php_phongo_serveropeningevent_free_object(zend_object* object) /* {{{ */
75+
{
76+
php_phongo_serveropeningevent_t* intern = Z_OBJ_SERVEROPENINGEVENT(object);
77+
78+
zend_object_std_dtor(&intern->std);
79+
} /* }}} */
80+
81+
static zend_object* php_phongo_serveropeningevent_create_object(zend_class_entry* class_type) /* {{{ */
82+
{
83+
php_phongo_serveropeningevent_t* intern = NULL;
84+
85+
intern = PHONGO_ALLOC_OBJECT_T(php_phongo_serveropeningevent_t, class_type);
86+
87+
zend_object_std_init(&intern->std, class_type);
88+
object_properties_init(&intern->std, class_type);
89+
90+
intern->std.handlers = &php_phongo_handler_serveropeningevent;
91+
92+
return &intern->std;
93+
} /* }}} */
94+
95+
static HashTable* php_phongo_serveropeningevent_get_debug_info(phongo_compat_object_handler_type* object, int* is_temp) /* {{{ */
96+
{
97+
php_phongo_serveropeningevent_t* intern;
98+
zval retval = ZVAL_STATIC_INIT;
99+
char topology_id[25];
100+
101+
intern = Z_OBJ_SERVEROPENINGEVENT(PHONGO_COMPAT_GET_OBJ(object));
102+
*is_temp = 1;
103+
array_init_size(&retval, 2);
104+
105+
ADD_ASSOC_STRING(&retval, "host", (intern->host)->host);
106+
107+
bson_oid_to_string(&intern->topology_id, topology_id);
108+
ADD_ASSOC_STRING(&retval, "topologyId", topology_id);
109+
110+
return Z_ARRVAL(retval);
111+
} /* }}} */
112+
/* }}} */
113+
114+
void php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS) /* {{{ */
115+
{
116+
zend_class_entry ce;
117+
(void) type;
118+
(void) module_number;
119+
120+
INIT_NS_CLASS_ENTRY(ce, "MongoDB\\Driver\\Monitoring", "ServerOpeningEvent", php_phongo_serveropeningevent_me);
121+
php_phongo_serveropeningevent_ce = zend_register_internal_class(&ce);
122+
php_phongo_serveropeningevent_ce->create_object = php_phongo_serveropeningevent_create_object;
123+
PHONGO_CE_FINAL(php_phongo_serveropeningevent_ce);
124+
PHONGO_CE_DISABLE_SERIALIZATION(php_phongo_serveropeningevent_ce);
125+
126+
memcpy(&php_phongo_handler_serveropeningevent, phongo_get_std_object_handlers(), sizeof(zend_object_handlers));
127+
php_phongo_handler_serveropeningevent.get_debug_info = php_phongo_serveropeningevent_get_debug_info;
128+
php_phongo_handler_serveropeningevent.free_obj = php_phongo_serveropeningevent_free_object;
129+
php_phongo_handler_serveropeningevent.offset = XtOffsetOf(php_phongo_serveropeningevent_t, std);
130+
131+
return;
132+
} /* }}} */
133+
134+
/*
135+
* Local variables:
136+
* tab-width: 4
137+
* c-basic-offset: 4
138+
* End:
139+
* vim600: noet sw=4 ts=4 fdm=marker
140+
* vim<600: noet sw=4 ts=4
141+
*/

src/phongo_apm.c

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,35 @@ static void phongo_apm_command_failed(const mongoc_apm_command_failed_t* event)
262262
FREE_HASHTABLE(subscribers);
263263
}
264264

265+
static void phongo_apm_server_opening(const mongoc_apm_server_opening_t* event)
266+
{
267+
mongoc_client_t* client;
268+
HashTable* subscribers;
269+
php_phongo_serveropeningevent_t* p_event;
270+
zval z_event;
271+
272+
client = mongoc_apm_server_opening_get_context(event);
273+
subscribers = phongo_apm_get_subscribers_to_notify(php_phongo_sdamsubscriber_ce, client);
274+
275+
/* Return early if there are no APM subscribers to notify */
276+
if (zend_hash_num_elements(subscribers) == 0) {
277+
goto cleanup;
278+
}
279+
280+
object_init_ex(&z_event, php_phongo_serveropeningevent_ce);
281+
p_event = Z_SERVEROPENINGEVENT_OBJ_P(&z_event);
282+
283+
mongoc_apm_server_opening_get_topology_id(event, &p_event->topology_id);
284+
p_event->host = mongoc_apm_server_opening_get_host(event);
285+
286+
phongo_apm_dispatch_event(subscribers, "serverOpening", &z_event);
287+
zval_ptr_dtor(&z_event);
288+
289+
cleanup:
290+
zend_hash_destroy(subscribers);
291+
FREE_HASHTABLE(subscribers);
292+
}
293+
265294
static void phongo_apm_topology_changed(const mongoc_apm_topology_changed_t* event)
266295
{
267296
mongoc_client_t* client;
@@ -311,7 +340,6 @@ static void phongo_apm_topology_opening(const mongoc_apm_topology_opening_t* eve
311340
p_event = Z_TOPOLOGYOPENINGEVENT_OBJ_P(&z_event);
312341

313342
mongoc_apm_topology_opening_get_topology_id(event, &p_event->topology_id);
314-
;
315343

316344
phongo_apm_dispatch_event(subscribers, "topologyOpening", &z_event);
317345
zval_ptr_dtor(&z_event);
@@ -333,6 +361,7 @@ bool phongo_apm_set_callbacks(mongoc_client_t* client)
333361
mongoc_apm_set_command_started_cb(callbacks, phongo_apm_command_started);
334362
mongoc_apm_set_command_succeeded_cb(callbacks, phongo_apm_command_succeeded);
335363
mongoc_apm_set_command_failed_cb(callbacks, phongo_apm_command_failed);
364+
mongoc_apm_set_server_opening_cb(callbacks, phongo_apm_server_opening);
336365
mongoc_apm_set_topology_changed_cb(callbacks, phongo_apm_topology_changed);
337366
mongoc_apm_set_topology_opening_cb(callbacks, phongo_apm_topology_opening);
338367

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
--TEST--
2+
MongoDB\Driver\Monitoring\ServerOpeningEvent
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();
11+
12+
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
13+
{
14+
private $serverOpened = false;
15+
16+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event)
17+
{
18+
if ($this->serverOpened) {
19+
return;
20+
}
21+
22+
$this->serverOpened = true;
23+
echo "- getHost() returns a string: ", is_string($event->getHost()) ? 'yes' : 'no', "\n";
24+
echo "- getTopologyId() returns an ObjectId: ", ($event->getTopologyId() instanceof MongoDB\BSON\ObjectId) ? 'yes' : 'no', "\n";
25+
}
26+
27+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event) {}
28+
29+
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event) {}
30+
}
31+
32+
$subscriber = new MySubscriber;
33+
MongoDB\Driver\Monitoring\addSubscriber($subscriber);
34+
35+
$command = new MongoDB\Driver\Command(['ping' => 1]);
36+
$m->executeCommand(DATABASE_NAME, $command);
37+
38+
?>
39+
===DONE===
40+
<?php exit(0); ?>
41+
--EXPECT--
42+
- getHost() returns a string: yes
43+
- getTopologyId() returns an ObjectId: yes
44+
===DONE===

tests/apm/monitoring-topologyChanged-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
1313
{
1414
private $topologyDescription;
1515

16+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
17+
1618
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
1719
{
1820
if (isset($this->topologyDescription)) {

tests/apm/monitoring-topologyOpening-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ $m = create_test_manager();
1111

1212
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
1313
{
14+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
15+
1416
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event) {}
1517

1618
public function topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event)

tests/topologyDescription/topologyDescription-debug-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
1111
{
1212
private $topologyDescription;
1313

14+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
15+
1416
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
1517
{
1618
$this->topologyDescription = $event->getNewDescription();

tests/topologyDescription/topologyDescription-getServers-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
1111
{
1212
private $topologyDescription;
1313

14+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
15+
1416
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
1517
{
1618
$this->topologyDescription = $event->getNewDescription();

tests/topologyDescription/topologyDescription-getType-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
1111
{
1212
private $topologyDescription;
1313

14+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
15+
1416
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
1517
{
1618
$this->topologyDescription = $event->getNewDescription();

tests/topologyDescription/topologyDescription-hasReadableServer-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
1111
{
1212
private $topologyDescription;
1313

14+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
15+
1416
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
1517
{
1618
$this->topologyDescription = $event->getNewDescription();

tests/topologyDescription/topologyDescription-hasReadableServer-002.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
1111
{
1212
private $topologyDescription;
1313

14+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
15+
1416
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
1517
{
1618
$this->topologyDescription = $event->getNewDescription();

tests/topologyDescription/topologyDescription-hasReadableServer_error-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
1111
{
1212
private $topologyDescription;
1313

14+
public function serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event) {}
15+
1416
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
1517
{
1618
$this->topologyDescription = $event->getNewDescription();

0 commit comments

Comments
 (0)