r3/php/r3/php_expandable_mux.c

46 lines
1.4 KiB
C

#include "php.h"
#include "string.h"
#include "main/php_main.h"
#include "Zend/zend_API.h"
#include "zend_exceptions.h"
#include "zend_interfaces.h"
#include "zend_object_handlers.h"
#include "ext/pcre/php_pcre.h"
#include "ext/standard/php_string.h"
#include "r3_functions.h"
#include "php_expandable_mux.h"
zend_class_entry *ce_r3_expandable_mux;
const zend_function_entry expandable_mux_methods[] = {
PHP_ABSTRACT_ME(ExpandableMux, expand, NULL)
PHP_FE_END
};
/**
* TODO: Use zend_class_implements to register Controller class.
*
* zend_class_implements(mysqli_result_class_entry TSRMLS_CC, 1, zend_ce_traversable);
*/
static int implement_expandable_mux_interface_handler(zend_class_entry *interface, zend_class_entry *implementor TSRMLS_DC)
{
if (implementor->type == ZEND_USER_CLASS &&
!instanceof_function(implementor, ce_r3_expandable_mux TSRMLS_CC)
) {
zend_error(E_ERROR, "R3\\ExpandableMux can't be implemented by user classes");
}
return SUCCESS;
}
void r3_init_expandable_mux(TSRMLS_D)
{
zend_class_entry ce_interface;
INIT_CLASS_ENTRY(ce_interface, "R3\\ExpandableMux", expandable_mux_methods);
// if(Z_TYPE_PP(current) == IS_OBJECT && instanceof_function(Z_OBJCE_PP(current), curl_CURLFile_class TSRMLS_CC))
ce_r3_expandable_mux = zend_register_internal_interface(&ce_interface TSRMLS_CC);
ce_r3_expandable_mux->interface_gets_implemented = implement_expandable_mux_interface_handler;
}