您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ swoole_get_object函数代码示例

51自学网 2021-06-03 08:35:56
  C++
这篇教程C++ swoole_get_object函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中swoole_get_object函数的典型用法代码示例。如果您正苦于以下问题:C++ swoole_get_object函数的具体用法?C++ swoole_get_object怎么用?C++ swoole_get_object使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了swoole_get_object函数的21个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: PHP_METHOD

static PHP_METHOD(swoole_server_port, getSocket){    swListenPort *port = swoole_get_object(getThis());    php_socket *socket_object = swoole_convert_to_socket(port->sock);    if (!socket_object)    {        RETURN_FALSE;    }    SW_ZEND_REGISTER_RESOURCE(return_value, (void *) socket_object, php_sockets_le_socket());    zval *zsocket = sw_zval_dup(return_value);    sw_zval_add_ref(&zsocket);}
开发者ID:detain,项目名称:swoole-src,代码行数:12,


示例2: PHP_METHOD

static PHP_METHOD(swoole_redis, __destruct){    swRedisClient *redis = swoole_get_object(getThis());    if (!redis)    {        return;    }    if (redis->state != SWOOLE_REDIS_STATE_CLOSED)    {        redisAsyncDisconnect(redis->context);    }    efree(redis);}
开发者ID:a6708051,项目名称:swoole-src,代码行数:13,


示例3: PHP_METHOD

static PHP_METHOD(swoole_ringqueue, pop){    swRingQueue *queue = swoole_get_object(getThis());    zval *zdata;    int n = swRingQueue_pop(queue, (void**)&zdata);    if (n < 0)    {        RETURN_FALSE;    }    RETVAL_ZVAL(zdata, 0, 0);    efree(zdata);}
开发者ID:leoozhao,项目名称:swoole-src,代码行数:13,


示例4: PHP_METHOD

static PHP_METHOD( swoole_websocket_server, on){    zval *callback;    zval *event_name;    if (SwooleGS->start > 0)    {        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Server is running. Unable to set event callback now.");        RETURN_FALSE;    }    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz", &event_name, &callback) == FAILURE)    {        return;    }    swServer *serv = swoole_get_object(getThis());    char *func_name = NULL;    if (!sw_zend_is_callable(callback, 0, &func_name TSRMLS_CC))    {        php_error_docref(NULL TSRMLS_CC, E_ERROR, "Function '%s' is not callable", func_name);        efree(func_name);        RETURN_FALSE;    }    efree(func_name);#if PHP_MAJOR_VERSION >= 7    zval *callback_copy = emalloc(sizeof(zval));    memcpy(callback_copy, callback, sizeof(zval));    callback = callback_copy;#endif    serv->open_websocket_protocol = 1;    if (strncasecmp("open", Z_STRVAL_P(event_name), Z_STRLEN_P(event_name)) == 0)    {        sw_zval_add_ref(&callback);        websocket_callbacks[0] = callback;    }    else if (strncasecmp("message", Z_STRVAL_P(event_name), Z_STRLEN_P(event_name)) == 0)    {        sw_zval_add_ref(&callback);        websocket_callbacks[1] = callback;    }    else    {        zval *obj = getThis();        sw_zend_call_method_with_2_params(&obj, swoole_http_server_class_entry_ptr, NULL, "on", &return_value, event_name, callback);    }}
开发者ID:koery,项目名称:CXSV,代码行数:51,


示例5: PHP_METHOD

static PHP_METHOD(swoole_table, set){    zval *array;    char *key;    zend_size_t keylen;    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sa", &key, &keylen, &array) == FAILURE)    {        RETURN_FALSE;    }    swTable *table = swoole_get_object(getThis());    sw_atomic_t *_lock = NULL;    swTableRow *row = swTableRow_set(table, key, keylen, &_lock);    if (!row)    {        sw_spinlock_release(_lock);        swoole_php_error(E_WARNING, "Unable to allocate memory.");        RETURN_FALSE;    }    swTableColumn *col;    zval *v;    char *k;    uint32_t klen;    int ktype;    HashTable *_ht = Z_ARRVAL_P(array);    SW_HASHTABLE_FOREACH_START2(_ht, k, klen, ktype, v)    {        col = swTableColumn_get(table, k, klen);        if (k == NULL || col == NULL)        {            continue;        }        else if (col->type == SW_TABLE_STRING)        {            convert_to_string(v);            swTableRow_set_value(row, col, Z_STRVAL_P(v), Z_STRLEN_P(v));        }        else if (col->type == SW_TABLE_FLOAT)        {            convert_to_double(v);            swTableRow_set_value(row, col, &Z_DVAL_P(v), 0);        }        else        {            convert_to_long(v);            swTableRow_set_value(row, col, &Z_LVAL_P(v), 0);        }    }
开发者ID:aron10,项目名称:swoole-src,代码行数:51,


示例6: PHP_METHOD

static PHP_METHOD(swoole_mysql, close){    mysql_client *client = swoole_get_object(getThis());    if (!client)    {        swoole_php_fatal_error(E_WARNING, "object is not instanceof swoole_mysql.");        RETURN_FALSE;    }    if (!client->cli)    {        swoole_php_fatal_error(E_WARNING, "mysql connection#%d is closed.", client->fd);        RETURN_FALSE;    }    zend_update_property_bool(swoole_mysql_class_entry_ptr, getThis(), ZEND_STRL("connected"), 0 TSRMLS_CC);    SwooleG.main_reactor->del(SwooleG.main_reactor, client->fd);    swConnection *socket = swReactor_get(SwooleG.main_reactor, client->fd);    socket->object = NULL;    zend_bool is_destroyed = client->cli->destroyed;    //close the connection    client->cli->close(client->cli);    //release client object memory    swClient_free(client->cli);    efree(client->cli);    client->cli = NULL;    zval *retval = NULL;    zval **args[1];    zval *object = getThis();    if (client->onClose)    {        args[0] = &object;        if (sw_call_user_function_ex(EG(function_table), NULL, client->onClose, &retval, 1, args, 0, NULL TSRMLS_CC) != SUCCESS)        {            swoole_php_fatal_error(E_WARNING, "swoole_mysql onClose callback error.");        }        if (retval)        {            sw_zval_ptr_dtor(&retval);        }    }    if (!is_destroyed)    {        sw_zval_ptr_dtor(&object);    }}
开发者ID:JacketZ,项目名称:swoole-src,代码行数:50,


示例7: PHP_METHOD

static PHP_METHOD(swoole_redis, close){    swRedisClient *redis = swoole_get_object(getThis());    if (redis && redis->context && redis->state != SWOOLE_REDIS_STATE_CLOSED)    {        if (redis->connecting)        {            SwooleG.main_reactor->defer(SwooleG.main_reactor, redis_close, redis);        }        else        {            redis_close(redis);        }    }}
开发者ID:yangxikun,项目名称:swoole-src,代码行数:15,


示例8: http_client_coro_onConnect

static void http_client_coro_onConnect(swClient *cli){#if PHP_MAJOR_VERSION < 7    TSRMLS_FETCH_FROM_CTX(sw_thread_ctx ? sw_thread_ctx : NULL);#endif    zval *zobject = cli->object;    http_client *http = swoole_get_object(zobject);    if (!http->cli)    {        swoole_php_fatal_error(E_WARNING, "object is not instanceof swoole_http_client_coro.");        return;    }    http_client_coro_send_http_request(zobject TSRMLS_CC);}
开发者ID:yzh0304,项目名称:swoole-src,代码行数:15,


示例9: PHP_METHOD

static PHP_METHOD(swoole_table, create){    swTable *table = swoole_get_object(getThis());    if (table->memory)    {        swoole_php_fatal_error(E_WARNING, "The table have beed created.");        RETURN_FALSE;    }    if (swTable_create(table) < 0)    {        swoole_php_fatal_error(E_ERROR, "Unable to allocate memory.");        RETURN_FALSE;    }    RETURN_TRUE;}
开发者ID:firedtoad,项目名称:swoole-src,代码行数:15,


示例10: PHP_METHOD

static PHP_METHOD(swoole_msgqueue, stats){    swMsgQueue *queue = swoole_get_object(getThis());    int queue_num = -1;    int queue_bytes = -1;    if (swMsgQueue_stat(queue, &queue_num, &queue_bytes) == 0)    {        array_init(return_value);        add_assoc_long_ex(return_value, ZEND_STRL("queue_num"), queue_num);        add_assoc_long_ex(return_value, ZEND_STRL("queue_bytes"), queue_bytes);    }    else    {        RETURN_FALSE;    }}
开发者ID:haixingdev,项目名称:swoole-src,代码行数:16,


示例11: PHP_METHOD

static PHP_METHOD(swoole_buffer, expand){    long size = -1;    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &size) == FAILURE)    {        RETURN_FALSE;    }    swString *buffer = swoole_get_object(getThis());    if (size <= buffer->size)    {        php_error_docref(NULL TSRMLS_CC, E_WARNING, "new size must more than %ld", buffer->size);        RETURN_FALSE;    }    zend_update_property_long(swoole_buffer_class_entry_ptr, getThis(), ZEND_STRL("capacity"), size TSRMLS_CC);    SW_CHECK_RETURN(swString_extend(buffer, size));}
开发者ID:otherChild,项目名称:swoole-src,代码行数:16,


示例12: PHP_METHOD

static PHP_METHOD(swoole_process, freeQueue){    swWorker *process = swoole_get_object(getThis());    if (process->queue)    {        process->queue->remove = 1;        swMsgQueue_free(process->queue);        efree(process->queue);        process->queue = NULL;        RETURN_TRUE;    }    else    {        RETURN_FALSE;    }}
开发者ID:google2013,项目名称:swoole-src,代码行数:16,


示例13: PHP_METHOD

static PHP_METHOD(swoole_process, __destruct){    swWorker *process = swoole_get_object(getThis());    swPipe *_pipe = process->pipe_object;    if (_pipe)    {        _pipe->close(_pipe);        efree(_pipe);    }    if (process->queue)    {        process->queue->free(process->queue);        efree(process->queue);    }    efree(process);}
开发者ID:rambochase,项目名称:swoole-src,代码行数:16,


示例14: PHP_METHOD

PHP_METHOD(swoole_atomic_long, set){    sw_atomic_long_t *atomic = swoole_get_object(getThis());    zend_long set_value;#ifdef FAST_ZPP    ZEND_PARSE_PARAMETERS_START(1, 1)        Z_PARAM_LONG(set_value)    ZEND_PARSE_PARAMETERS_END();#else    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &set_value) == FAILURE)    {        RETURN_FALSE;    }#endif    *atomic = (sw_atomic_long_t) set_value;}
开发者ID:laomuji57,项目名称:swoole-src,代码行数:17,


示例15: PHP_METHOD

static PHP_METHOD(swoole_coroutine_iterator, valid){    coroutine_iterator *itearator = swoole_get_object(getThis());    int cid = itearator->current_cid;    for (; itearator->count > 0 && cid < MAX_CORO_NUM_LIMIT + 1; cid++)    {        if (coroutine_get_by_id(cid))        {            itearator->current_cid = cid;            itearator->index++;            itearator->count--;            RETURN_TRUE;        }    }    RETURN_FALSE;}
开发者ID:didiwuliu,项目名称:swoole-src,代码行数:17,


示例16: PHP_METHOD

static PHP_METHOD(swoole_redis, close){    swRedisClient *redis = swoole_get_object(getThis());    if (redis && redis->context)    {        if (redis->connecting)        {            swoole_php_fatal_error(E_WARNING, "redis client is connecting, cannot close.");            RETURN_FALSE;        }        else if (redis->state != SWOOLE_REDIS_STATE_CLOSED)        {            redisAsyncDisconnect(redis->context);        }    }}
开发者ID:MerlinFeng,项目名称:swoole-src,代码行数:17,


示例17: http_client_coro_onTimeout

static void http_client_coro_onTimeout(php_context *ctx){#if PHP_MAJOR_VERSION < 7    TSRMLS_FETCH_FROM_CTX(sw_thread_ctx ? sw_thread_ctx : NULL);#endif    zval *zdata;    zval *retval = NULL;    SW_MAKE_STD_ZVAL(zdata);    ZVAL_BOOL(zdata, 0); //return false#if PHP_MAJOR_VERSION < 7    zval *zobject = (zval *)ctx->coro_params;#else    zval _zobject = ctx->coro_params;    zval *zobject = & _zobject;#endif    //define time out RETURN ERROR  110    zend_update_property_long(swoole_http_client_coro_class_entry_ptr, zobject, ZEND_STRL("errCode"), 110 TSRMLS_CC);    http_client *http = swoole_get_object(zobject);    http->cli->released = 1;    http_client_free(zobject TSRMLS_CC);    swoole_set_object(zobject, NULL);    http_client_property *hcc = swoole_get_property(zobject, 0);    if(hcc->defer && hcc->defer_status != HTTP_CLIENT_STATE_DEFER_WAIT){        hcc->defer_status = HTTP_CLIENT_STATE_DEFER_DONE;        hcc->defer_result = 0;        goto free_zdata;    }    hcc->defer_status = HTTP_CLIENT_STATE_DEFER_INIT;    int ret = coro_resume(ctx, zdata, &retval);    if (ret > 0)    {        goto free_zdata;    }    if (retval != NULL)    {        sw_zval_ptr_dtor(&retval);    }free_zdata:    sw_zval_ptr_dtor(&zdata);}
开发者ID:yzh0304,项目名称:swoole-src,代码行数:45,


示例18: swoole_redis_send_command

static int swoole_redis_send_command(zval *object, zval *callback, char *format, ...){#if PHP_MAJOR_VERSION < 7    TSRMLS_FETCH_FROM_CTX(sw_thread_ctx ? sw_thread_ctx : NULL);#endif    swRedisClient *redis = swoole_get_object(object);    switch (redis->state)    {    case SWOOLE_REDIS_STATE_CONNECT:        swoole_php_error(E_WARNING, "redis client is not connected.");        return SW_ERR;    case SWOOLE_REDIS_STATE_WAIT:        swoole_php_error(E_WARNING, "redis client is waiting for response.");        return SW_ERR;    case SWOOLE_REDIS_STATE_CLOSED:        swoole_php_error(E_WARNING, "redis client connection is closed.");        return SW_ERR;    default:        break;    }#if PHP_MAJOR_VERSION < 7    redis->result_callback = callback;#else    redis->result_callback = &redis->_result_callback;    memcpy(redis->result_callback, callback, sizeof(zval));#endif    sw_zval_add_ref(&redis->result_callback);    va_list ap;    va_start(ap, format);    int ret = redisvAsyncCommand(redis->context, swoole_redis_onResult, NULL, format, ap);    va_end(ap);    if (ret < 0)    {        swoole_php_error(E_WARNING, "redisAsyncCommandArgv() failed.");        return SW_ERR;    }    redis->state = SWOOLE_REDIS_STATE_WAIT;    return SW_OK;}
开发者ID:Mrhjx2,项目名称:swoole-src,代码行数:43,


示例19: PHP_METHOD

PHP_METHOD(swoole_table, column){    char *name;    zend_size_t len;    long type;    long size;    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ll", &name, &len, &type, &size) == FAILURE)    {        RETURN_FALSE;    }    if (type == SW_TABLE_STRING && size < 1)    {        php_error_docref(NULL TSRMLS_CC, E_WARNING, "string length must be more than 0.");        RETURN_FALSE;    }    swTable *table = swoole_get_object(getThis());    swTableColumn_add(table, name, len, type, size);    RETURN_TRUE;}
开发者ID:jeevi-cao,项目名称:swoole-src,代码行数:20,


示例20: PHP_METHOD

static PHP_METHOD(swoole_mysql, __destruct){    mysql_client *client = swoole_get_object(getThis());    if (!client)    {        swoole_php_fatal_error(E_WARNING, "object is not instanceof swoole_mysql.");        RETURN_FALSE;    }//    if (client->state != SW_MYSQL_STATE_CLOSED)//    {//        zval *retval;//        sw_zend_call_method_with_0_params(&getThis(), swoole_mysql_class_entry_ptr, NULL, "close", &retval);//        if (retval)//        {//            sw_zval_ptr_dtor(&retval);//        }//    }    efree(client);    swoole_set_object(getThis(), NULL);}
开发者ID:captaim,项目名称:swoole-src,代码行数:20,


示例21: PHP_METHOD

static PHP_METHOD(swoole_redis, on){    char *name;    zend_size_t len;    zval *cb;    if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "sz", &name, &len, &cb) == FAILURE)    {        return;    }    swRedisClient *redis = swoole_get_object(getThis());    if (redis->context != NULL)    {        swoole_php_fatal_error(E_WARNING, "Must be called before connect.");        RETURN_FALSE;    }    if (strncasecmp("close", name, len) == 0)    {        zend_update_property(swoole_redis_class_entry_ptr, getThis(), ZEND_STRL("onClose"), cb TSRMLS_CC);        redis->close_callback = sw_zend_read_property(swoole_redis_class_entry_ptr,  getThis(), ZEND_STRL("onClose"), 0 TSRMLS_CC);        sw_copy_to_stack(redis->close_callback, redis->_close_callback);    }    else if (strncasecmp("message", name, len) == 0)    {        zend_update_property(swoole_redis_class_entry_ptr, getThis(), ZEND_STRL("onMessage"), cb TSRMLS_CC);        redis->message_callback = sw_zend_read_property(swoole_redis_class_entry_ptr,  getThis(), ZEND_STRL("onMessage"), 0 TSRMLS_CC);        sw_copy_to_stack(redis->message_callback, redis->_message_callback);        redis->subscribe = 1;    }    else    {        swoole_php_error(E_WARNING, "Unknown event type[%s]", name);        RETURN_FALSE;    }    RETURN_TRUE;}
开发者ID:captaim,项目名称:swoole-src,代码行数:39,



注:本文中的swoole_get_object函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ swp_entry函数代码示例
C++ swizzle函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。