Exemplo n.º 1
0
ZEND_METHOD( appnetServer , on )
{
    size_t type_len,i,ret;
    char*  type;
    zval *cb;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz",  &type, &type_len, &cb ) == FAILURE)
    {
      return;
    }
    
    char *callback[APPNET_SERVER_CALLBACK_NUM] = {
        APPNET_EVENT_CONNECT,
        APPNET_EVENT_RECV,
        APPNET_EVENT_CLOSE,
		APPNET_EVENT_START,
		APPNET_EVENT_FINAL,
        APPNET_EVENT_TIMER
    };
	
    for (i = 0; i < APPNET_SERVER_CALLBACK_NUM; i++)
    {
        if (strncasecmp(callback[i], type , type_len ) == 0)
        {
            ret = appnet_set_callback(i, cb TSRMLS_CC);
            break;
        }
    }
	
    if (ret < 0)
    {
        php_error_docref(NULL TSRMLS_CC, E_ERROR, "Unknown event types[%s]", type );
    }
}
Exemplo n.º 2
0
ZEND_METHOD( appnetServer , on )
{
    size_t type_len,i,ret;
    char*  type;
    zval *cb;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz",  &type, &type_len, &cb ) == FAILURE)
    {
      return;
    }
    
    char *callback[APPNET_SERVER_CALLBACK_NUM] = {
        "connect",
        "receive",
        "close",
	"start",
	"final",
        "timer"
    };
    for (i = 0; i < APPNET_SERVER_CALLBACK_NUM; i++)
    {
        if (strncasecmp(callback[i], type , type_len ) == 0)
        {
            ret = appnet_set_callback(i, cb TSRMLS_CC);
            break;
        }
    }
    if (ret < 0)
    {
        php_error_docref(NULL TSRMLS_CC, E_ERROR, "Unknown event types[%s]", type );
    }
}