Skip to content

Commit 10b3a1f

Browse files
jmikolatanlisualcaeus
authored
PHPC-1150: SDAM Monitoring (#1289)
* PHPC-1805: Implement ServerDescription class * PHPC-1910: Implement Server::getServerDescription() * PHPC-1934: Check for uninitialized intern in ServerDescription get_properties_hash * PHPC-1925: Change ServerDescription::getType() to return a string * PHPC-1891: Implement TopologyDescription class * PHPC-1892: Implement SDAMSubscriber interface * PHPC-1893: Implement SDAM event classes * Revise server and topology event classes and tests Use phongo_objectid_init in getTopologyId() methods. Report topologyId as an ObjectId in debug info. Report TopologyDescription servers as ServerDescription in debug info. Copy parameters in phongo_serverdescription_init and phongo_topologydescription_init for consistency with other functions (e.g. phongo_readconcern_init). This also creates phongo_serverdescription_init_ex for when we want to skip copying in Server::getServerDescription(). * PHPC-1953: Add tests for debug handlers * PHPC-1959: Utilize Manager::addSubscriber() in tests Skip TopologyClosedEvent test (pending PHPC-2023) * PHPC-1958: Assert same topologyId for SDAM events * PHPC-2025: Support load balancer in ServerDescription and TopologyDescription * PHPC-2026: Handle 64-bit lastUpdateTime for 32-bit platforms Co-authored-by: Tanli Su <[email protected]> Co-authored-by: Andreas Braun <[email protected]> Co-authored-by: Tanli Su <[email protected]>
1 parent f62570c commit 10b3a1f

File tree

49 files changed

+4080
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+4080
-3
lines changed

config.m4

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,9 @@ if test "$PHP_MONGODB" != "no"; then
146146
src/MongoDB/ReadPreference.c \
147147
src/MongoDB/Server.c \
148148
src/MongoDB/ServerApi.c \
149+
src/MongoDB/ServerDescription.c \
149150
src/MongoDB/Session.c \
151+
src/MongoDB/TopologyDescription.c \
150152
src/MongoDB/WriteConcern.c \
151153
src/MongoDB/WriteConcernError.c \
152154
src/MongoDB/WriteError.c \
@@ -170,7 +172,17 @@ if test "$PHP_MONGODB" != "no"; then
170172
src/MongoDB/Monitoring/CommandStartedEvent.c \
171173
src/MongoDB/Monitoring/CommandSubscriber.c \
172174
src/MongoDB/Monitoring/CommandSucceededEvent.c \
175+
src/MongoDB/Monitoring/SDAMSubscriber.c \
173176
src/MongoDB/Monitoring/Subscriber.c \
177+
src/MongoDB/Monitoring/ServerChangedEvent.c \
178+
src/MongoDB/Monitoring/ServerClosedEvent.c \
179+
src/MongoDB/Monitoring/ServerHeartbeatFailedEvent.c \
180+
src/MongoDB/Monitoring/ServerHeartbeatStartedEvent.c \
181+
src/MongoDB/Monitoring/ServerHeartbeatSucceededEvent.c \
182+
src/MongoDB/Monitoring/ServerOpeningEvent.c \
183+
src/MongoDB/Monitoring/TopologyChangedEvent.c \
184+
src/MongoDB/Monitoring/TopologyClosedEvent.c \
185+
src/MongoDB/Monitoring/TopologyOpeningEvent.c \
174186
src/MongoDB/Monitoring/functions.c \
175187
"
176188

config.w32

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,9 @@ if (PHP_MONGODB != "no") {
120120
EXTENSION("mongodb", "php_phongo.c phongo_compat.c", null, PHP_MONGODB_CFLAGS);
121121
MONGODB_ADD_SOURCES("/src", "bson.c bson-encode.c phongo_apm.c phongo_ini.c");
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");
123-
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 Session.c WriteConcern.c WriteConcernError.c WriteError.c WriteResult.c");
123+
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 Subscriber.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 ServerHeartbeatFailedEvent.c ServerHeartbeatStartedEvent.c ServerHeartbeatSucceededEvent.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: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,17 @@ void phongo_server_init(zval* return_value, zval* manager, uint32_t server_id) /
358358
}
359359
/* }}} */
360360

361+
void phongo_serverdescription_init_ex(zval* return_value, mongoc_server_description_t* server_description, bool copy) /* {{{ */
362+
{
363+
php_phongo_serverdescription_t* intern;
364+
365+
object_init_ex(return_value, php_phongo_serverdescription_ce);
366+
367+
intern = Z_SERVERDESCRIPTION_OBJ_P(return_value);
368+
intern->server_description = copy ? mongoc_server_description_new_copy(server_description) : server_description;
369+
}
370+
/* }}} */
371+
361372
void phongo_session_init(zval* return_value, zval* manager, mongoc_client_session_t* client_session) /* {{{ */
362373
{
363374
php_phongo_session_t* session;
@@ -383,6 +394,17 @@ void phongo_objectid_init(zval* return_value, const bson_oid_t* oid) /* {{{ */
383394
}
384395
/* }}} */
385396

397+
void phongo_topologydescription_init(zval* return_value, mongoc_topology_description_t* topology_description) /* {{{ */
398+
{
399+
php_phongo_topologydescription_t* intern;
400+
401+
object_init_ex(return_value, php_phongo_topologydescription_ce);
402+
403+
intern = Z_TOPOLOGYDESCRIPTION_OBJ_P(return_value);
404+
intern->topology_description = mongoc_topology_description_new_copy(topology_description);
405+
}
406+
/* }}} */
407+
386408
void phongo_readconcern_init(zval* return_value, const mongoc_read_concern_t* read_concern) /* {{{ */
387409
{
388410
php_phongo_readconcern_t* intern;
@@ -1135,7 +1157,6 @@ const mongoc_read_prefs_t* phongo_read_preference_from_zval(zval* zread_preferen
11351157
} /* }}} */
11361158
/* }}} */
11371159

1138-
/* {{{ phongo zval from mongoc types */
11391160
php_phongo_server_description_type_t php_phongo_server_description_type(mongoc_server_description_t* sd)
11401161
{
11411162
const char* name = mongoc_server_description_type(sd);
@@ -3600,6 +3621,8 @@ PHP_MINIT_FUNCTION(mongodb)
36003621
php_phongo_readpreference_init_ce(INIT_FUNC_ARGS_PASSTHRU);
36013622
php_phongo_server_init_ce(INIT_FUNC_ARGS_PASSTHRU);
36023623
php_phongo_serverapi_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3624+
php_phongo_serverdescription_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3625+
php_phongo_topologydescription_init_ce(INIT_FUNC_ARGS_PASSTHRU);
36033626
php_phongo_session_init_ce(INIT_FUNC_ARGS_PASSTHRU);
36043627
php_phongo_writeconcern_init_ce(INIT_FUNC_ARGS_PASSTHRU);
36053628
php_phongo_writeconcernerror_init_ce(INIT_FUNC_ARGS_PASSTHRU);
@@ -3630,6 +3653,16 @@ PHP_MINIT_FUNCTION(mongodb)
36303653
php_phongo_commandfailedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
36313654
php_phongo_commandstartedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
36323655
php_phongo_commandsucceededevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3656+
php_phongo_sdamsubscriber_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3657+
php_phongo_serverchangedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3658+
php_phongo_serverclosedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3659+
php_phongo_serverheartbeatfailedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3660+
php_phongo_serverheartbeatstartedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3661+
php_phongo_serverheartbeatsucceededevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3662+
php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3663+
php_phongo_topologychangedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3664+
php_phongo_topologyclosedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3665+
php_phongo_topologyopeningevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
36333666

36343667
REGISTER_STRING_CONSTANT("MONGODB_VERSION", (char*) PHP_MONGODB_VERSION, CONST_CS | CONST_PERSISTENT);
36353668
REGISTER_STRING_CONSTANT("MONGODB_STABILITY", (char*) PHP_MONGODB_STABILITY, CONST_CS | CONST_PERSISTENT);

php_phongo.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,12 @@ zend_object_handlers* phongo_get_std_object_handlers(void);
117117

118118
void phongo_clientencryption_init(php_phongo_clientencryption_t* ce_obj, zval* manager, zval* options);
119119
void phongo_server_init(zval* return_value, zval* manager, uint32_t server_id);
120+
void phongo_serverdescription_init(zval* return_value, mongoc_server_description_t* server_description);
121+
void phongo_serverdescription_init_ex(zval* return_value, mongoc_server_description_t* sd, bool copy);
122+
#define phongo_serverdescription_init(r, sd) phongo_serverdescription_init_ex((r), (sd), true)
120123
void phongo_session_init(zval* return_value, zval* manager, mongoc_client_session_t* client_session);
121124
void phongo_objectid_init(zval* return_value, const bson_oid_t* oid);
125+
void phongo_topologydescription_init(zval* return_value, mongoc_topology_description_t* topology_description);
122126
void phongo_readconcern_init(zval* return_value, const mongoc_read_concern_t* read_concern);
123127
void phongo_readpreference_init(zval* return_value, const mongoc_read_prefs_t* read_prefs);
124128
void phongo_writeconcern_init(zval* return_value, const mongoc_write_concern_t* write_concern);

php_phongo_classes.h

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ static inline php_phongo_server_t* php_server_fetch_object(zend_object* obj)
6363
{
6464
return (php_phongo_server_t*) ((char*) obj - XtOffsetOf(php_phongo_server_t, std));
6565
}
66+
static inline php_phongo_serverdescription_t* php_serverdescription_fetch_object(zend_object* obj)
67+
{
68+
return (php_phongo_serverdescription_t*) ((char*) obj - XtOffsetOf(php_phongo_serverdescription_t, std));
69+
}
70+
static inline php_phongo_topologydescription_t* php_topologydescription_fetch_object(zend_object* obj)
71+
{
72+
return (php_phongo_topologydescription_t*) ((char*) obj - XtOffsetOf(php_phongo_topologydescription_t, std));
73+
}
6674
static inline php_phongo_serverapi_t* php_serverapi_fetch_object(zend_object* obj)
6775
{
6876
return (php_phongo_serverapi_t*) ((char*) obj - XtOffsetOf(php_phongo_serverapi_t, std));
@@ -151,6 +159,42 @@ static inline php_phongo_commandsucceededevent_t* php_commandsucceededevent_fetc
151159
{
152160
return (php_phongo_commandsucceededevent_t*) ((char*) obj - XtOffsetOf(php_phongo_commandsucceededevent_t, std));
153161
}
162+
static inline php_phongo_serverchangedevent_t* php_serverchangedevent_fetch_object(zend_object* obj)
163+
{
164+
return (php_phongo_serverchangedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_serverchangedevent_t, std));
165+
}
166+
static inline php_phongo_serverclosedevent_t* php_serverclosedevent_fetch_object(zend_object* obj)
167+
{
168+
return (php_phongo_serverclosedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_serverclosedevent_t, std));
169+
}
170+
static inline php_phongo_serverheartbeatfailedevent_t* php_serverheartbeatfailedevent_fetch_object(zend_object* obj)
171+
{
172+
return (php_phongo_serverheartbeatfailedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_serverheartbeatfailedevent_t, std));
173+
}
174+
static inline php_phongo_serverheartbeatstartedevent_t* php_serverheartbeatstartedevent_fetch_object(zend_object* obj)
175+
{
176+
return (php_phongo_serverheartbeatstartedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_serverheartbeatstartedevent_t, std));
177+
}
178+
static inline php_phongo_serverheartbeatsucceededevent_t* php_serverheartbeatsucceededevent_fetch_object(zend_object* obj)
179+
{
180+
return (php_phongo_serverheartbeatsucceededevent_t*) ((char*) obj - XtOffsetOf(php_phongo_serverheartbeatsucceededevent_t, std));
181+
}
182+
static inline php_phongo_serveropeningevent_t* php_serveropeningevent_fetch_object(zend_object* obj)
183+
{
184+
return (php_phongo_serveropeningevent_t*) ((char*) obj - XtOffsetOf(php_phongo_serveropeningevent_t, std));
185+
}
186+
static inline php_phongo_topologychangedevent_t* php_topologychangedevent_fetch_object(zend_object* obj)
187+
{
188+
return (php_phongo_topologychangedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologychangedevent_t, std));
189+
}
190+
static inline php_phongo_topologyclosedevent_t* php_topologyclosedevent_fetch_object(zend_object* obj)
191+
{
192+
return (php_phongo_topologyclosedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologyclosedevent_t, std));
193+
}
194+
static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_object(zend_object* obj)
195+
{
196+
return (php_phongo_topologyopeningevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologyopeningevent_t, std));
197+
}
154198

155199
#define Z_CLIENTENCRYPTION_OBJ_P(zv) (php_clientencryption_fetch_object(Z_OBJ_P(zv)))
156200
#define Z_COMMAND_OBJ_P(zv) (php_command_fetch_object(Z_OBJ_P(zv)))
@@ -162,7 +206,9 @@ static inline php_phongo_commandsucceededevent_t* php_commandsucceededevent_fetc
162206
#define Z_READPREFERENCE_OBJ_P(zv) (php_readpreference_fetch_object(Z_OBJ_P(zv)))
163207
#define Z_SERVER_OBJ_P(zv) (php_server_fetch_object(Z_OBJ_P(zv)))
164208
#define Z_SERVERAPI_OBJ_P(zv) (php_serverapi_fetch_object(Z_OBJ_P(zv)))
209+
#define Z_SERVERDESCRIPTION_OBJ_P(zv) (php_serverdescription_fetch_object(Z_OBJ_P(zv)))
165210
#define Z_SESSION_OBJ_P(zv) (php_session_fetch_object(Z_OBJ_P(zv)))
211+
#define Z_TOPOLOGYDESCRIPTION_OBJ_P(zv) (php_topologydescription_fetch_object(Z_OBJ_P(zv)))
166212
#define Z_BULKWRITE_OBJ_P(zv) (php_bulkwrite_fetch_object(Z_OBJ_P(zv)))
167213
#define Z_WRITECONCERN_OBJ_P(zv) (php_writeconcern_fetch_object(Z_OBJ_P(zv)))
168214
#define Z_WRITECONCERNERROR_OBJ_P(zv) (php_writeconcernerror_fetch_object(Z_OBJ_P(zv)))
@@ -184,6 +230,15 @@ static inline php_phongo_commandsucceededevent_t* php_commandsucceededevent_fetc
184230
#define Z_COMMANDFAILEDEVENT_OBJ_P(zv) (php_commandfailedevent_fetch_object(Z_OBJ_P(zv)))
185231
#define Z_COMMANDSTARTEDEVENT_OBJ_P(zv) (php_commandstartedevent_fetch_object(Z_OBJ_P(zv)))
186232
#define Z_COMMANDSUCCEEDEDEVENT_OBJ_P(zv) (php_commandsucceededevent_fetch_object(Z_OBJ_P(zv)))
233+
#define Z_SERVERCHANGEDEVENT_OBJ_P(zv) (php_serverchangedevent_fetch_object(Z_OBJ_P(zv)))
234+
#define Z_SERVERCLOSEDEVENT_OBJ_P(zv) (php_serverclosedevent_fetch_object(Z_OBJ_P(zv)))
235+
#define Z_SERVERHEARTBEATFAILEDEVENT_OBJ_P(zv) (php_serverheartbeatfailedevent_fetch_object(Z_OBJ_P(zv)))
236+
#define Z_SERVERHEARTBEATSTARTEDEVENT_OBJ_P(zv) (php_serverheartbeatstartedevent_fetch_object(Z_OBJ_P(zv)))
237+
#define Z_SERVERHEARTBEATSUCCEEDEDEVENT_OBJ_P(zv) (php_serverheartbeatsucceededevent_fetch_object(Z_OBJ_P(zv)))
238+
#define Z_SERVEROPENINGEVENT_OBJ_P(zv) (php_serveropeningevent_fetch_object(Z_OBJ_P(zv)))
239+
#define Z_TOPOLOGYCHANGEDEVENT_OBJ_P(zv) (php_topologychangedevent_fetch_object(Z_OBJ_P(zv)))
240+
#define Z_TOPOLOGYCLOSEDEVENT_OBJ_P(zv) (php_topologyclosedevent_fetch_object(Z_OBJ_P(zv)))
241+
#define Z_TOPOLOGYOPENINGEVENT_OBJ_P(zv) (php_topologyopeningevent_fetch_object(Z_OBJ_P(zv)))
187242

188243
#define Z_OBJ_CLIENTENCRYPTION(zo) (php_clientencryption_fetch_object(zo))
189244
#define Z_OBJ_COMMAND(zo) (php_command_fetch_object(zo))
@@ -195,7 +250,9 @@ static inline php_phongo_commandsucceededevent_t* php_commandsucceededevent_fetc
195250
#define Z_OBJ_READPREFERENCE(zo) (php_readpreference_fetch_object(zo))
196251
#define Z_OBJ_SERVER(zo) (php_server_fetch_object(zo))
197252
#define Z_OBJ_SERVERAPI(zo) (php_serverapi_fetch_object(zo))
253+
#define Z_OBJ_SERVERDESCRIPTION(zo) (php_serverdescription_fetch_object(zo))
198254
#define Z_OBJ_SESSION(zo) (php_session_fetch_object(zo))
255+
#define Z_OBJ_TOPOLOGYDESCRIPTION(zo) (php_topologydescription_fetch_object(zo))
199256
#define Z_OBJ_BULKWRITE(zo) (php_bulkwrite_fetch_object(zo))
200257
#define Z_OBJ_WRITECONCERN(zo) (php_writeconcern_fetch_object(zo))
201258
#define Z_OBJ_WRITECONCERNERROR(zo) (php_writeconcernerror_fetch_object(zo))
@@ -217,6 +274,15 @@ static inline php_phongo_commandsucceededevent_t* php_commandsucceededevent_fetc
217274
#define Z_OBJ_COMMANDFAILEDEVENT(zo) (php_commandfailedevent_fetch_object(zo))
218275
#define Z_OBJ_COMMANDSTARTEDEVENT(zo) (php_commandstartedevent_fetch_object(zo))
219276
#define Z_OBJ_COMMANDSUCCEEDEDEVENT(zo) (php_commandsucceededevent_fetch_object(zo))
277+
#define Z_OBJ_SERVERCHANGEDEVENT(zo) (php_serverchangedevent_fetch_object(zo))
278+
#define Z_OBJ_SERVERCLOSEDEVENT(zo) (php_serverclosedevent_fetch_object(zo))
279+
#define Z_OBJ_SERVERHEARTBEATFAILEDEVENT(zo) (php_serverheartbeatfailedevent_fetch_object(zo))
280+
#define Z_OBJ_SERVERHEARTBEATSTARTEDEVENT(zo) (php_serverheartbeatstartedevent_fetch_object(zo))
281+
#define Z_OBJ_SERVERHEARTBEATSUCCEEDEDEVENT(zo) (php_serverheartbeatsucceededevent_fetch_object(zo))
282+
#define Z_OBJ_SERVEROPENINGEVENT(zo) (php_serveropeningevent_fetch_object(zo))
283+
#define Z_OBJ_TOPOLOGYCHANGEDEVENT(zo) (php_topologychangedevent_fetch_object(zo))
284+
#define Z_OBJ_TOPOLOGYCLOSEDEVENT(zo) (php_topologyclosedevent_fetch_object(zo))
285+
#define Z_OBJ_TOPOLOGYOPENINGEVENT(zo) (php_topologyopeningevent_fetch_object(zo))
220286

221287
extern zend_class_entry* php_phongo_clientencryption_ce;
222288
extern zend_class_entry* php_phongo_command_ce;
@@ -228,7 +294,9 @@ extern zend_class_entry* php_phongo_readconcern_ce;
228294
extern zend_class_entry* php_phongo_readpreference_ce;
229295
extern zend_class_entry* php_phongo_server_ce;
230296
extern zend_class_entry* php_phongo_serverapi_ce;
297+
extern zend_class_entry* php_phongo_serverdescription_ce;
231298
extern zend_class_entry* php_phongo_session_ce;
299+
extern zend_class_entry* php_phongo_topologydescription_ce;
232300
extern zend_class_entry* php_phongo_bulkwrite_ce;
233301
extern zend_class_entry* php_phongo_writeconcern_ce;
234302
extern zend_class_entry* php_phongo_writeconcernerror_ce;
@@ -285,7 +353,17 @@ extern zend_class_entry* php_phongo_commandfailedevent_ce;
285353
extern zend_class_entry* php_phongo_commandstartedevent_ce;
286354
extern zend_class_entry* php_phongo_commandsubscriber_ce;
287355
extern zend_class_entry* php_phongo_commandsucceededevent_ce;
356+
extern zend_class_entry* php_phongo_sdamsubscriber_ce;
288357
extern zend_class_entry* php_phongo_subscriber_ce;
358+
extern zend_class_entry* php_phongo_serverchangedevent_ce;
359+
extern zend_class_entry* php_phongo_serverclosedevent_ce;
360+
extern zend_class_entry* php_phongo_serverheartbeatfailedevent_ce;
361+
extern zend_class_entry* php_phongo_serverheartbeatstartedevent_ce;
362+
extern zend_class_entry* php_phongo_serverheartbeatsucceededevent_ce;
363+
extern zend_class_entry* php_phongo_serveropeningevent_ce;
364+
extern zend_class_entry* php_phongo_topologychangedevent_ce;
365+
extern zend_class_entry* php_phongo_topologyclosedevent_ce;
366+
extern zend_class_entry* php_phongo_topologyopeningevent_ce;
289367

290368
extern void php_phongo_binary_init_ce(INIT_FUNC_ARGS);
291369
extern void php_phongo_dbpointer_init_ce(INIT_FUNC_ARGS);
@@ -326,7 +404,9 @@ extern void php_phongo_readconcern_init_ce(INIT_FUNC_ARGS);
326404
extern void php_phongo_readpreference_init_ce(INIT_FUNC_ARGS);
327405
extern void php_phongo_server_init_ce(INIT_FUNC_ARGS);
328406
extern void php_phongo_serverapi_init_ce(INIT_FUNC_ARGS);
407+
extern void php_phongo_serverdescription_init_ce(INIT_FUNC_ARGS);
329408
extern void php_phongo_session_init_ce(INIT_FUNC_ARGS);
409+
extern void php_phongo_topologydescription_init_ce(INIT_FUNC_ARGS);
330410
extern void php_phongo_writeconcern_init_ce(INIT_FUNC_ARGS);
331411
extern void php_phongo_writeconcernerror_init_ce(INIT_FUNC_ARGS);
332412
extern void php_phongo_writeerror_init_ce(INIT_FUNC_ARGS);
@@ -354,7 +434,17 @@ extern void php_phongo_commandfailedevent_init_ce(INIT_FUNC_ARGS);
354434
extern void php_phongo_commandstartedevent_init_ce(INIT_FUNC_ARGS);
355435
extern void php_phongo_commandsubscriber_init_ce(INIT_FUNC_ARGS);
356436
extern void php_phongo_commandsucceededevent_init_ce(INIT_FUNC_ARGS);
437+
extern void php_phongo_sdamsubscriber_init_ce(INIT_FUNC_ARGS);
357438
extern void php_phongo_subscriber_init_ce(INIT_FUNC_ARGS);
439+
extern void php_phongo_serverchangedevent_init_ce(INIT_FUNC_ARGS);
440+
extern void php_phongo_serverclosedevent_init_ce(INIT_FUNC_ARGS);
441+
extern void php_phongo_serverheartbeatfailedevent_init_ce(INIT_FUNC_ARGS);
442+
extern void php_phongo_serverheartbeatstartedevent_init_ce(INIT_FUNC_ARGS);
443+
extern void php_phongo_serverheartbeatsucceededevent_init_ce(INIT_FUNC_ARGS);
444+
extern void php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS);
445+
extern void php_phongo_topologychangedevent_init_ce(INIT_FUNC_ARGS);
446+
extern void php_phongo_topologyclosedevent_init_ce(INIT_FUNC_ARGS);
447+
extern void php_phongo_topologyopeningevent_init_ce(INIT_FUNC_ARGS);
358448

359449
/* Shared function entries for disabling constructors and unserialize() */
360450
PHP_FUNCTION(MongoDB_disabled___construct);

0 commit comments

Comments
 (0)