Skip to content

Commit c60a6dc

Browse files
tanlisujmikola
authored andcommitted
PHPC-1893: Implement SDAM event classes
1 parent fa0715d commit c60a6dc

25 files changed

+1406
-4
lines changed

config.m4

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,12 @@ if test "$PHP_MONGODB" != "no"; then
174174
src/MongoDB/Monitoring/CommandSucceededEvent.c \
175175
src/MongoDB/Monitoring/SDAMSubscriber.c \
176176
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/ServerOpeningEvent.c \
177181
src/MongoDB/Monitoring/TopologyChangedEvent.c \
182+
src/MongoDB/Monitoring/TopologyClosedEvent.c \
178183
src/MongoDB/Monitoring/TopologyOpeningEvent.c \
179184
src/MongoDB/Monitoring/functions.c \
180185
"

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 ServerChangedEvent.c ServerClosedEvent.c ServerHeartbeatFailedEvent.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: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1307,8 +1307,6 @@ bool php_phongo_topology_description_to_zval(zval* retval, mongoc_topology_descr
13071307
}
13081308

13091309
add_next_index_zval(&servers, &obj);
1310-
zval_ptr_dtor(&obj);
1311-
zval_ptr_dtor(&servers);
13121310
}
13131311
mongoc_server_descriptions_destroy_all(sds, n);
13141312

@@ -3719,7 +3717,12 @@ PHP_MINIT_FUNCTION(mongodb)
37193717
php_phongo_commandstartedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
37203718
php_phongo_commandsucceededevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
37213719
php_phongo_sdamsubscriber_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3720+
php_phongo_serverchangedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3721+
php_phongo_serverclosedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3722+
php_phongo_serverheartbeatfailedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3723+
php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
37223724
php_phongo_topologychangedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
3725+
php_phongo_topologyclosedevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
37233726
php_phongo_topologyopeningevent_init_ce(INIT_FUNC_ARGS_PASSTHRU);
37243727

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

php_phongo_classes.h

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,30 @@ 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_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_serveropeningevent_t* php_serveropeningevent_fetch_object(zend_object* obj)
175+
{
176+
return (php_phongo_serveropeningevent_t*) ((char*) obj - XtOffsetOf(php_phongo_serveropeningevent_t, std));
177+
}
162178
static inline php_phongo_topologychangedevent_t* php_topologychangedevent_fetch_object(zend_object* obj)
163179
{
164180
return (php_phongo_topologychangedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologychangedevent_t, std));
165181
}
182+
static inline php_phongo_topologyclosedevent_t* php_topologyclosedevent_fetch_object(zend_object* obj)
183+
{
184+
return (php_phongo_topologyclosedevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologyclosedevent_t, std));
185+
}
166186
static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_object(zend_object* obj)
167187
{
168188
return (php_phongo_topologyopeningevent_t*) ((char*) obj - XtOffsetOf(php_phongo_topologyopeningevent_t, std));
@@ -202,7 +222,12 @@ static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_
202222
#define Z_COMMANDFAILEDEVENT_OBJ_P(zv) (php_commandfailedevent_fetch_object(Z_OBJ_P(zv)))
203223
#define Z_COMMANDSTARTEDEVENT_OBJ_P(zv) (php_commandstartedevent_fetch_object(Z_OBJ_P(zv)))
204224
#define Z_COMMANDSUCCEEDEDEVENT_OBJ_P(zv) (php_commandsucceededevent_fetch_object(Z_OBJ_P(zv)))
225+
#define Z_SERVERCHANGEDEVENT_OBJ_P(zv) (php_serverchangedevent_fetch_object(Z_OBJ_P(zv)))
226+
#define Z_SERVERCLOSEDEVENT_OBJ_P(zv) (php_serverclosedevent_fetch_object(Z_OBJ_P(zv)))
227+
#define Z_SERVERHEARTBEATFAILEDEVENT_OBJ_P(zv) (php_serverheartbeatfailedevent_fetch_object(Z_OBJ_P(zv)))
228+
#define Z_SERVEROPENINGEVENT_OBJ_P(zv) (php_serveropeningevent_fetch_object(Z_OBJ_P(zv)))
205229
#define Z_TOPOLOGYCHANGEDEVENT_OBJ_P(zv) (php_topologychangedevent_fetch_object(Z_OBJ_P(zv)))
230+
#define Z_TOPOLOGYCLOSEDEVENT_OBJ_P(zv) (php_topologyclosedevent_fetch_object(Z_OBJ_P(zv)))
206231
#define Z_TOPOLOGYOPENINGEVENT_OBJ_P(zv) (php_topologyopeningevent_fetch_object(Z_OBJ_P(zv)))
207232

208233
#define Z_OBJ_CLIENTENCRYPTION(zo) (php_clientencryption_fetch_object(zo))
@@ -239,7 +264,12 @@ static inline php_phongo_topologyopeningevent_t* php_topologyopeningevent_fetch_
239264
#define Z_OBJ_COMMANDFAILEDEVENT(zo) (php_commandfailedevent_fetch_object(zo))
240265
#define Z_OBJ_COMMANDSTARTEDEVENT(zo) (php_commandstartedevent_fetch_object(zo))
241266
#define Z_OBJ_COMMANDSUCCEEDEDEVENT(zo) (php_commandsucceededevent_fetch_object(zo))
267+
#define Z_OBJ_SERVERCHANGEDEVENT(zo) (php_serverchangedevent_fetch_object(zo))
268+
#define Z_OBJ_SERVERCLOSEDEVENT(zo) (php_serverclosedevent_fetch_object(zo))
269+
#define Z_OBJ_SERVERHEARTBEATFAILEDEVENT(zo) (php_serverheartbeatfailedevent_fetch_object(zo))
270+
#define Z_OBJ_SERVEROPENINGEVENT(zo) (php_serveropeningevent_fetch_object(zo))
242271
#define Z_OBJ_TOPOLOGYCHANGEDEVENT(zo) (php_topologychangedevent_fetch_object(zo))
272+
#define Z_OBJ_TOPOLOGYCLOSEDEVENT(zo) (php_topologyclosedevent_fetch_object(zo))
243273
#define Z_OBJ_TOPOLOGYOPENINGEVENT(zo) (php_topologyopeningevent_fetch_object(zo))
244274

245275
extern zend_class_entry* php_phongo_clientencryption_ce;
@@ -313,7 +343,12 @@ extern zend_class_entry* php_phongo_commandsubscriber_ce;
313343
extern zend_class_entry* php_phongo_commandsucceededevent_ce;
314344
extern zend_class_entry* php_phongo_sdamsubscriber_ce;
315345
extern zend_class_entry* php_phongo_subscriber_ce;
346+
extern zend_class_entry* php_phongo_serverchangedevent_ce;
347+
extern zend_class_entry* php_phongo_serverclosedevent_ce;
348+
extern zend_class_entry* php_phongo_serverheartbeatfailedevent_ce;
349+
extern zend_class_entry* php_phongo_serveropeningevent_ce;
316350
extern zend_class_entry* php_phongo_topologychangedevent_ce;
351+
extern zend_class_entry* php_phongo_topologyclosedevent_ce;
317352
extern zend_class_entry* php_phongo_topologyopeningevent_ce;
318353

319354
extern void php_phongo_binary_init_ce(INIT_FUNC_ARGS);
@@ -387,7 +422,12 @@ extern void php_phongo_commandsubscriber_init_ce(INIT_FUNC_ARGS);
387422
extern void php_phongo_commandsucceededevent_init_ce(INIT_FUNC_ARGS);
388423
extern void php_phongo_sdamsubscriber_init_ce(INIT_FUNC_ARGS);
389424
extern void php_phongo_subscriber_init_ce(INIT_FUNC_ARGS);
425+
extern void php_phongo_serverchangedevent_init_ce(INIT_FUNC_ARGS);
426+
extern void php_phongo_serverclosedevent_init_ce(INIT_FUNC_ARGS);
427+
extern void php_phongo_serverheartbeatfailedevent_init_ce(INIT_FUNC_ARGS);
428+
extern void php_phongo_serveropeningevent_init_ce(INIT_FUNC_ARGS);
390429
extern void php_phongo_topologychangedevent_init_ce(INIT_FUNC_ARGS);
430+
extern void php_phongo_topologyclosedevent_init_ce(INIT_FUNC_ARGS);
391431
extern void php_phongo_topologyopeningevent_init_ce(INIT_FUNC_ARGS);
392432

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

php_phongo_structs.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,13 +290,50 @@ typedef struct {
290290
zend_object std;
291291
} php_phongo_commandsucceededevent_t;
292292

293+
typedef struct {
294+
bson_oid_t topology_id;
295+
char host[BSON_HOST_NAME_MAX + 1];
296+
uint16_t port;
297+
mongoc_server_description_t* new_server_description;
298+
mongoc_server_description_t* old_server_description;
299+
zend_object std;
300+
} php_phongo_serverchangedevent_t;
301+
302+
typedef struct {
303+
bson_oid_t topology_id;
304+
char host[BSON_HOST_NAME_MAX + 1];
305+
uint16_t port;
306+
zend_object std;
307+
} php_phongo_serverclosedevent_t;
308+
309+
typedef struct {
310+
bool awaited;
311+
int64_t duration;
312+
bson_error_t* error;
313+
char host[BSON_HOST_NAME_MAX + 1];
314+
uint16_t port;
315+
zend_object std;
316+
} php_phongo_serverheartbeatfailedevent_t;
317+
318+
typedef struct {
319+
bson_oid_t topology_id;
320+
char host[BSON_HOST_NAME_MAX + 1];
321+
uint16_t port;
322+
zend_object std;
323+
} php_phongo_serveropeningevent_t;
324+
293325
typedef struct {
294326
bson_oid_t topology_id;
295327
mongoc_topology_description_t* new_topology_description;
296328
mongoc_topology_description_t* old_topology_description;
297329
zend_object std;
298330
} php_phongo_topologychangedevent_t;
299331

332+
typedef struct {
333+
bson_oid_t topology_id;
334+
zend_object std;
335+
} php_phongo_topologyclosedevent_t;
336+
300337
typedef struct {
301338
bson_oid_t topology_id;
302339
zend_object std;
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
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_serverchangedevent_ce;
28+
29+
/* {{{ proto string ServerChangedEvent::getHost()
30+
Returns this event's host */
31+
static PHP_METHOD(ServerChangedEvent, getHost)
32+
{
33+
php_phongo_serverchangedevent_t* intern = Z_SERVERCHANGEDEVENT_OBJ_P(getThis());
34+
35+
PHONGO_PARSE_PARAMETERS_NONE();
36+
37+
RETVAL_STRING(intern->host);
38+
} /* }}} */
39+
40+
/* {{{ proto integer ServerChangedEvent::getPort()
41+
Returns this event's port */
42+
static PHP_METHOD(ServerChangedEvent, getPort)
43+
{
44+
php_phongo_serverchangedevent_t* intern = Z_SERVERCHANGEDEVENT_OBJ_P(getThis());
45+
46+
PHONGO_PARSE_PARAMETERS_NONE();
47+
48+
RETVAL_LONG(intern->port);
49+
} /* }}} */
50+
51+
/* {{{ proto MongoDB\Driver\ServerDescription ServerChangedEvent::getNewDescription()
52+
Returns this event's new description */
53+
static PHP_METHOD(ServerChangedEvent, getNewDescription)
54+
{
55+
mongoc_server_description_t* server_description;
56+
php_phongo_serverchangedevent_t* intern = Z_SERVERCHANGEDEVENT_OBJ_P(getThis());
57+
58+
PHONGO_PARSE_PARAMETERS_NONE();
59+
60+
server_description = mongoc_server_description_new_copy(intern->new_server_description);
61+
62+
phongo_serverdescription_init(return_value, server_description);
63+
} /* }}} */
64+
65+
/* {{{ proto MongoDB\Driver\ServerDescription ServerChangedEvent::getPreviousDescription()
66+
Returns this event's previous description */
67+
static PHP_METHOD(ServerChangedEvent, getPreviousDescription)
68+
{
69+
mongoc_server_description_t* server_description;
70+
php_phongo_serverchangedevent_t* intern = Z_SERVERCHANGEDEVENT_OBJ_P(getThis());
71+
72+
PHONGO_PARSE_PARAMETERS_NONE();
73+
74+
server_description = mongoc_server_description_new_copy(intern->old_server_description);
75+
76+
phongo_serverdescription_init(return_value, server_description);
77+
} /* }}} */
78+
79+
/* {{{ proto MongoDB\BSON\ObjectId ServerChangedEvent::getTopologyId()
80+
Returns this event's topology id */
81+
static PHP_METHOD(ServerChangedEvent, getTopologyId)
82+
{
83+
php_phongo_objectid_t* topology_id;
84+
php_phongo_serverchangedevent_t* intern = Z_SERVERCHANGEDEVENT_OBJ_P(getThis());
85+
86+
PHONGO_PARSE_PARAMETERS_NONE();
87+
88+
object_init_ex(return_value, php_phongo_objectid_ce);
89+
90+
topology_id = Z_OBJECTID_OBJ_P(return_value);
91+
bson_oid_to_string(&intern->topology_id, topology_id->oid);
92+
topology_id->initialized = true;
93+
} /* }}} */
94+
95+
/* {{{ MongoDB\Driver\Monitoring\ServerChangedEvent function entries */
96+
ZEND_BEGIN_ARG_INFO_EX(ai_ServerChangedEvent_void, 0, 0, 0)
97+
ZEND_END_ARG_INFO()
98+
99+
static zend_function_entry php_phongo_serverchangedevent_me[] = {
100+
/* clang-format off */
101+
ZEND_NAMED_ME(__construct, PHP_FN(MongoDB_disabled___construct), ai_ServerChangedEvent_void, ZEND_ACC_PRIVATE | ZEND_ACC_FINAL)
102+
PHP_ME(ServerChangedEvent, getHost, ai_ServerChangedEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
103+
PHP_ME(ServerChangedEvent, getPort, ai_ServerChangedEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
104+
PHP_ME(ServerChangedEvent, getNewDescription, ai_ServerChangedEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
105+
PHP_ME(ServerChangedEvent, getPreviousDescription, ai_ServerChangedEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
106+
PHP_ME(ServerChangedEvent, getTopologyId, ai_ServerChangedEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
107+
ZEND_NAMED_ME(__wakeup, PHP_FN(MongoDB_disabled___wakeup), ai_ServerChangedEvent_void, ZEND_ACC_PUBLIC | ZEND_ACC_FINAL)
108+
PHP_FE_END
109+
/* clang-format on */
110+
};
111+
/* }}} */
112+
113+
/* {{{ MongoDB\Driver\Monitoring\ServerChangedEvent object handlers */
114+
static zend_object_handlers php_phongo_handler_serverchangedevent;
115+
116+
static void php_phongo_serverchangedevent_free_object(zend_object* object) /* {{{ */
117+
{
118+
php_phongo_serverchangedevent_t* intern = Z_OBJ_SERVERCHANGEDEVENT(object);
119+
120+
zend_object_std_dtor(&intern->std);
121+
122+
if (intern->new_server_description) {
123+
mongoc_server_description_destroy(intern->new_server_description);
124+
}
125+
126+
if (intern->old_server_description) {
127+
mongoc_server_description_destroy(intern->old_server_description);
128+
}
129+
} /* }}} */
130+
131+
static zend_object* php_phongo_serverchangedevent_create_object(zend_class_entry* class_type) /* {{{ */
132+
{
133+
php_phongo_serverchangedevent_t* intern = NULL;
134+
135+
intern = PHONGO_ALLOC_OBJECT_T(php_phongo_serverchangedevent_t, class_type);
136+
137+
zend_object_std_init(&intern->std, class_type);
138+
object_properties_init(&intern->std, class_type);
139+
140+
intern->std.handlers = &php_phongo_handler_serverchangedevent;
141+
142+
return &intern->std;
143+
} /* }}} */
144+
145+
static HashTable* php_phongo_serverchangedevent_get_debug_info(phongo_compat_object_handler_type* object, int* is_temp) /* {{{ */
146+
{
147+
php_phongo_serverchangedevent_t* intern;
148+
zval retval = ZVAL_STATIC_INIT;
149+
char topology_id[25];
150+
151+
intern = Z_OBJ_SERVERCHANGEDEVENT(PHONGO_COMPAT_GET_OBJ(object));
152+
*is_temp = 1;
153+
array_init_size(&retval, 4);
154+
155+
ADD_ASSOC_STRING(&retval, "host", intern->host);
156+
ADD_ASSOC_LONG_EX(&retval, "port", intern->port);
157+
158+
bson_oid_to_string(&intern->topology_id, topology_id);
159+
ADD_ASSOC_STRING(&retval, "topologyId", topology_id);
160+
161+
{
162+
zval new_server_description;
163+
php_phongo_server_description_to_zval(&new_server_description, intern->new_server_description);
164+
ADD_ASSOC_ZVAL_EX(&retval, "newServerDescription", &new_server_description);
165+
}
166+
167+
{
168+
zval old_server_description;
169+
php_phongo_server_description_to_zval(&old_server_description, intern->old_server_description);
170+
ADD_ASSOC_ZVAL_EX(&retval, "oldServerDescription", &old_server_description);
171+
}
172+
173+
return Z_ARRVAL(retval);
174+
} /* }}} */
175+
/* }}} */
176+
177+
void php_phongo_serverchangedevent_init_ce(INIT_FUNC_ARGS) /* {{{ */
178+
{
179+
zend_class_entry ce;
180+
(void) type;
181+
(void) module_number;
182+
183+
INIT_NS_CLASS_ENTRY(ce, "MongoDB\\Driver\\Monitoring", "ServerChangedEvent", php_phongo_serverchangedevent_me);
184+
php_phongo_serverchangedevent_ce = zend_register_internal_class(&ce);
185+
php_phongo_serverchangedevent_ce->create_object = php_phongo_serverchangedevent_create_object;
186+
PHONGO_CE_FINAL(php_phongo_serverchangedevent_ce);
187+
PHONGO_CE_DISABLE_SERIALIZATION(php_phongo_serverchangedevent_ce);
188+
189+
memcpy(&php_phongo_handler_serverchangedevent, phongo_get_std_object_handlers(), sizeof(zend_object_handlers));
190+
php_phongo_handler_serverchangedevent.get_debug_info = php_phongo_serverchangedevent_get_debug_info;
191+
php_phongo_handler_serverchangedevent.free_obj = php_phongo_serverchangedevent_free_object;
192+
php_phongo_handler_serverchangedevent.offset = XtOffsetOf(php_phongo_serverchangedevent_t, std);
193+
194+
return;
195+
} /* }}} */
196+
197+
/*
198+
* Local variables:
199+
* tab-width: 4
200+
* c-basic-offset: 4
201+
* End:
202+
* vim600: noet sw=4 ts=4 fdm=marker
203+
* vim<600: noet sw=4 ts=4
204+
*/

0 commit comments

Comments
 (0)