void php_ds_register_queue() { zend_class_entry ce; zend_function_entry methods[] = { PHP_DS_ME(Queue, __construct) PHP_DS_ME(Queue, allocate) PHP_DS_ME(Queue, capacity) PHP_DS_ME(Queue, peek) PHP_DS_ME(Queue, pop) PHP_DS_ME(Queue, push) PHP_DS_ME(Queue, pushAll) PHP_DS_ME_LIST(Queue) PHP_FE_END }; INIT_CLASS_ENTRY(ce, PHP_DS_NS(Queue), methods); php_ds_queue_ce = zend_register_internal_class(&ce); php_ds_queue_ce->ce_flags |= ZEND_ACC_FINAL; php_ds_queue_ce->create_object = php_ds_queue_create_object; php_ds_queue_ce->get_iterator = php_ds_queue_get_iterator; php_ds_queue_ce->serialize = php_ds_queue_serialize; php_ds_queue_ce->unserialize = php_ds_queue_unserialize; zend_declare_class_constant_long(php_ds_queue_ce, STR_AND_LEN("MIN_CAPACITY"), DS_DEQUE_MIN_CAPACITY); zend_class_implements(php_ds_queue_ce, 1, collection_ce); php_ds_register_queue_handlers(); }
void php_ds_register_collection() { zend_class_entry ce; zend_function_entry methods[] = { COLLECTION_ABSTRACT_ME(clear) COLLECTION_ABSTRACT_ME(copy) COLLECTION_ABSTRACT_ME(isEmpty) COLLECTION_ABSTRACT_ME(toArray) PHP_FE_END }; INIT_CLASS_ENTRY(ce, PHP_DS_NS(Collection), methods); collection_ce = zend_register_internal_interface(&ce); zend_class_implements(collection_ce, 3, zend_ce_traversable, // Traversable spl_ce_Countable, // Countable php_json_serializable_ce // Serializable ); }
void php_ds_register_pair() { zend_class_entry ce; zend_function_entry methods[] = { PHP_DS_ME(Pair, __construct) PHP_DS_ME(Pair, copy) PHP_DS_ME(Pair, jsonSerialize) PHP_DS_ME(Pair, toArray) PHP_FE_END }; INIT_CLASS_ENTRY(ce, PHP_DS_NS(Pair), methods); php_ds_pair_ce = zend_register_internal_class(&ce); php_ds_pair_ce->ce_flags |= ZEND_ACC_FINAL; php_ds_pair_ce->create_object = php_ds_pair_create_object; php_ds_pair_ce->serialize = php_ds_pair_serialize; php_ds_pair_ce->unserialize = php_ds_pair_unserialize; zend_class_implements(php_ds_pair_ce, 1, php_json_serializable_ce); php_ds_register_pair_handlers(); }