• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ RFREE函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: riack_free_copied_rpb_pair

/**
 * Free all memory associated with a RpbPair
 */
void riack_free_copied_rpb_pair(riack_client* client, RpbPair* ppair)
{
	RFREE(client, ppair->key.data);
	if (ppair->has_value) {
		RFREE(client, ppair->value.data);
	}
}
开发者ID:ecks,项目名称:riack,代码行数:10,代码来源:riack_helpers.c


示例2: riack_free_copied_pair

void riack_free_copied_pair(riack_client* client, riack_pair *ppair)
{
	RFREE(client, ppair->key.value);
	if (ppair->value_present) {
		RFREE(client, ppair->value);
	}
}
开发者ID:ecks,项目名称:riack,代码行数:7,代码来源:riack_helpers.c


示例3: nr_turn_stun_set_auth_params

static int nr_turn_stun_set_auth_params(nr_turn_stun_ctx *ctx,
                                        char *realm, char *nonce)
{
  int _status;

  RFREE(ctx->realm);
  RFREE(ctx->nonce);

  assert(realm);
  if (!realm)
    ABORT(R_BAD_ARGS);
  ctx->realm=r_strdup(realm);
  if (!ctx->realm)
    ABORT(R_NO_MEMORY);

  assert(nonce);
  if (!nonce)
    ABORT(R_BAD_ARGS);
  ctx->nonce=r_strdup(nonce);
  if (!ctx->nonce)
    ABORT(R_NO_MEMORY);

  RFREE(ctx->stun->realm);
  ctx->stun->realm = r_strdup(ctx->realm);
  if (!ctx->stun->realm)
    ABORT(R_NO_MEMORY);

  ctx->stun->auth_params.realm = ctx->realm;
  ctx->stun->auth_params.nonce = ctx->nonce;
  ctx->stun->auth_params.authenticate = 1;  /* May already be 1 */

  _status=0;
abort:
  return(_status);
}
开发者ID:Jar-win,项目名称:Waterfox,代码行数:35,代码来源:turn_client_ctx.c


示例4: riak_free_copied_rpb_pair

/**
 * Free all memory associated with a RpbPair
 */
void riak_free_copied_rpb_pair(struct RIACK_CLIENT* client, RpbPair* ppair)
{
	RFREE(client, ppair->key.data);
	if (ppair->has_value) {
		RFREE(client, ppair->value.data);
	}
}
开发者ID:bumptech,项目名称:riack,代码行数:10,代码来源:riack_helpers.c


示例5: riack_send_message

int riack_send_message(struct RIACK_CLIENT *client, struct RIACK_PB_MSG* msg)
{
	uint8_t *buf;
	uint32_t netlen, sendlen;

	sendlen = 5 + msg->msg_len;
	buf = (uint8_t*)RMALLOC(client, sendlen);
	netlen = htonl(msg->msg_len+1);
	memcpy(buf, &netlen, 4);
	buf[4] = msg->msg_code;
	if (msg->msg_len > 0)
	{
		memcpy(buf+5, msg->msg, (int)msg->msg_len);
	}
	// first send header
	if (sock_send(client->sockfd, buf, sendlen) != sendlen)
	{
		printf("sock_send failed to send correct number of bytes\n");
		// Error failed to send bytes most have lost connection
		RFREE(client, buf);
		return -1;
	}
	RFREE(client, buf);
	return sendlen;
}
开发者ID:bumptech,项目名称:riack,代码行数:25,代码来源:riack_msg.c


示例6: nr_ice_candidate_pair_destroy

int nr_ice_candidate_pair_destroy(nr_ice_cand_pair **pairp)
  {
    nr_ice_cand_pair *pair;

    if(!pairp || !*pairp)
      return(0);

    pair=*pairp;
    *pairp=0;

    RFREE(pair->as_string);
    RFREE(pair->foundation);
    nr_ice_socket_deregister(pair->local->isock,pair->stun_client_handle);
    if (pair->stun_client) {
      RFREE(pair->stun_client->params.ice_binding_request.username);
      RFREE(pair->stun_client->params.ice_binding_request.password.data);
      nr_stun_client_ctx_destroy(&pair->stun_client);
    }

    NR_async_timer_cancel(pair->stun_cb_timer);
    NR_async_timer_cancel(pair->restart_role_change_cb_timer);
    NR_async_timer_cancel(pair->restart_nominated_cb_timer);

    RFREE(pair);
    return(0);
  }
开发者ID:Andrel322,项目名称:gecko-dev,代码行数:26,代码来源:ice_candidate_pair.c


示例7: riack_free_copied_rpb_put_req

/**
 * Free alle memory associated with a RpbPutReq
 */
void riack_free_copied_rpb_put_req(struct RIACK_CLIENT* client, RpbPutReq* pput_req)
{
	if (pput_req) {
		RFREE(client, pput_req->bucket.data);
		RFREE(client, pput_req->vclock.data);
		RFREE(client, pput_req->key.data);
		riak_free_copied_rpb_content(client, pput_req->content);
		RFREE(client, pput_req->content);
	}
}
开发者ID:bumptech,项目名称:riack,代码行数:13,代码来源:riack_helpers.c


示例8: riack_free

void riack_free(struct RIACK_CLIENT *client)
{
	if (client != 0) {
		if (client->last_error) {
			RFREE(client, client->last_error);
		}
		if (client->host) {
			RFREE(client, client->host);
		}
		riack_disconnect(client);
		client->allocator.free(0, client);
	}
}
开发者ID:fumpierrez,项目名称:riack,代码行数:13,代码来源:riack.c


示例9: riack_message_free

void riack_message_free(struct RIACK_CLIENT *client, struct RIACK_PB_MSG** ppMsg)
{
	struct RIACK_PB_MSG* pMsg = *ppMsg;
	if (pMsg != 0)
	{
		if (pMsg->msg_len > 0 && pMsg->msg != 0)
		{
			RFREE(client, pMsg->msg);
		}
		RFREE(client, pMsg);
	}
	*ppMsg = 0;
}
开发者ID:bumptech,项目名称:riack,代码行数:13,代码来源:riack_msg.c


示例10: riak_free_content

void riak_free_content(struct RIACK_CLIENT* client, struct RIACK_CONTENT *pcontent)
{
	size_t cnt, i;
	RFREE(client, pcontent->charset.value);
	RFREE(client, pcontent->content_encoding.value);
	RFREE(client, pcontent->content_type.value);
	RFREE(client, pcontent->vtag.value);
	if (pcontent->data_len > 0) {
		RFREE(client, pcontent->data);
	}
	cnt = pcontent->index_count;
	if (cnt > 0) {
		for (i=0; i<cnt; ++i) {
			riak_free_copied_pair(client, &pcontent->indexes[i]);
		}
		RFREE(client,pcontent->indexes);
	}

	cnt = pcontent->usermeta_count;
	if (cnt > 0) {
		for (i=0; i<cnt; ++i) {
			riak_free_copied_pair(client, &pcontent->usermetas[i]);
		}
		RFREE(client,pcontent->usermetas);
	}

	cnt = pcontent->link_count;
	if (cnt > 0) {
		for (i=0; i<cnt; ++i) {
			riak_free_copied_link(client, &pcontent->links[i]);
		}
		RFREE(client,pcontent->links);
	}
}
开发者ID:bumptech,项目名称:riack,代码行数:34,代码来源:riack_helpers.c


示例11: riack_free_mapred_result

void riack_free_mapred_result(struct RIACK_CLIENT* client, struct RIACK_MAPRED_RESULT *result)
{
	struct RIACK_MAPRED_RESULT *current, *last;
	current = result;
	last = 0;
	while (current) {
		if (current->data_size > 0 && current->data) {
			RFREE(client, current->data);
		}
		last = current;
		current = current->next_result;
		RFREE(client, last);
	}
}
开发者ID:bumptech,项目名称:riack,代码行数:14,代码来源:riack_helpers.c


示例12: riack_free_mapred_result

void riack_free_mapred_result(riack_client* client, riack_mapred_response_list *result)
{
    riack_mapred_response_list *current, *last;
	current = result;
	last = 0;
	while (current) {
        if (current->response.data_size > 0 && current->response.data) {
            RFREE(client, current->response.data);
		}
		last = current;
        current = current->next_result;
		RFREE(client, last);
	}
}
开发者ID:ecks,项目名称:riack,代码行数:14,代码来源:riack_helpers.c


示例13: riack_free_search_result_p

void riack_free_search_result_p(riack_client* client, riack_search_result** search_result)
{
    if (search_result && *search_result) {
        size_t cnt = (*search_result)->document_count;
        if (cnt > 0) {
            size_t i;
            for (i = 0; i < cnt; ++i) {
                riack_free_search_document(client, &(*search_result)->documents[i]);
            }
            RFREE(client, (*search_result)->documents);
        }
        RFREE(client, *search_result);
        *search_result = 0;
    }
}
开发者ID:ecks,项目名称:riack,代码行数:15,代码来源:riack_search.c


示例14: nr_turn_client_ctx_destroy

int
nr_turn_client_ctx_destroy(nr_turn_client_ctx **ctxp)
{
  nr_turn_client_ctx *ctx;

  if(!ctxp || !*ctxp)
    return(0);

  ctx=*ctxp;
  *ctxp = 0;

  if (ctx->label)
    r_log(NR_LOG_TURN, LOG_DEBUG, "TURN(%s): destroy", ctx->label);

  nr_turn_client_deallocate(ctx);

  /* Cancel frees the rest of our data */
  RFREE(ctx->label);
  ctx->label = 0;

  nr_turn_client_cancel(ctx);

  RFREE(ctx->username);
  ctx->username = 0;
  r_data_destroy(&ctx->password);
  RFREE(ctx->nonce);
  ctx->nonce = 0;
  RFREE(ctx->realm);
  ctx->realm = 0;

  /* Destroy the STUN client ctxs */
  while (!STAILQ_EMPTY(&ctx->stun_ctxs)) {
    nr_turn_stun_ctx *stun = STAILQ_FIRST(&ctx->stun_ctxs);
    STAILQ_REMOVE_HEAD(&ctx->stun_ctxs, entry);
    nr_turn_stun_ctx_destroy(&stun);
  }

  /* Destroy the permissions */
  while (!STAILQ_EMPTY(&ctx->permissions)) {
    nr_turn_permission *perm = STAILQ_FIRST(&ctx->permissions);
    STAILQ_REMOVE_HEAD(&ctx->permissions, entry);
    nr_turn_permission_destroy(&perm);
  }

  RFREE(ctx);

  return(0);
}
开发者ID:Jar-win,项目名称:Waterfox,代码行数:48,代码来源:turn_client_ctx.c


示例15: riack_connect

int riack_connect(struct RIACK_CLIENT *client, const char* host, int port,
		struct RIACK_CONNECTION_OPTIONS* options)
{
	client->sockfd = sock_open(host, port);
	if (client->sockfd > 0) {
		if (client->host && host != client->host) {
			RFREE(client, client->host);
		}
		if (host != client->host) {
			client->host = (char*)RMALLOC(client, strlen(host)+1);
			strcpy(client->host, host);
		}
		client->port = port;
		if (options) {
			client->options = *options;
			if (!sock_set_timeouts(client->sockfd, options->recv_timeout_ms, options->send_timeout_ms)) {
				sock_close(client->sockfd);
				client->sockfd = -1;
				// TODO set last error
			}
		}
		return RIACK_SUCCESS;
	}
	return RIACK_ERROR_COMMUNICATION;
}
开发者ID:fumpierrez,项目名称:riack,代码行数:25,代码来源:riack.c


示例16: PHP_METHOD

/* {{{ proto void Riak\Bucket->getKeyStream(Riak\Output\KeyStreamOutput streamer [, int $timeout = 0])
Streams all keys in the bucket */
PHP_METHOD(RiakBucket, getKeyStream)
{
    struct riak_stream_key_cb_param cb_params;
    riack_string rsbucket, *rstype;
    riak_connection *connection, *stream_connection;
    zval* zstreamer;
    long timeout;
    int riackstatus;
    timeout = 0;
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|l", &zstreamer, riak_key_streamer_ce, &timeout) == FAILURE) {
        zend_throw_exception(riak_badarguments_exception_ce, "Bad or missing argument", 500 TSRMLS_CC);
        return;
    }
    // Create a new connection only for this stream
    // LibRiack can only handle one operation at the time pr connection
    connection = get_riak_connection(getThis() TSRMLS_CC);

    THROW_EXCEPTION_IF_CONNECTION_IS_NULL(connection);

    stream_connection = take_connection(connection->client->host, strlen(connection->client->host), connection->client->port TSRMLS_CC);
    if (!stream_connection) {
        CHECK_RIACK_STATUS_THROW_AND_RETURN_ON_ERROR(stream_connection, RIACK_ERROR_COMMUNICATION);
    }
    rsbucket = riack_name_from_bucket(getThis() TSRMLS_CC);
#ifdef ZTS
    cb_params.tsrm_ls = TSRMLS_C;
#endif
    cb_params.zstreamer = zstreamer;
    rstype = riack_get_bucket_type_from_bucket(connection->client, getThis() TSRMLS_CC);
    // Not gonna do a retry here on purpose... no reason to retry a mistake in the first place
    riackstatus = riack_stream_keys_ext(stream_connection->client, &rsbucket, rstype, riak_stream_key_cb, &cb_params, timeout);
    CHECK_RIACK_STATUS_THROW_ON_ERROR(stream_connection, riackstatus);
    RFREE(connection->client, rstype);
    release_connection(stream_connection TSRMLS_CC);
}
开发者ID:pavelsmolka,项目名称:php_riak,代码行数:37,代码来源:bucket.c


示例17: NR_reg_alloc_string

int
NR_reg_alloc_string(NR_registry name, char **data)
{
    int r, _status;
    size_t length;
    char  *tmp = 0;

    if ((r=NR_reg_get_length(name, &length)))
        ABORT(r);

    if (!(tmp = (void*)RMALLOC(length+1)))
        ABORT(R_NO_MEMORY);

    if ((r=NR_reg_get_string(name, tmp, length+1)))
        ABORT(r);

    assert(length == strlen(tmp));

    *data = tmp;

    _status=0;
abort:
    if (_status) {
        if (tmp) RFREE(tmp);
    }
    return(_status);
}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:27,代码来源:registry.c


示例18: NR_reg_alloc_data

// convenience methods, call RFREE on the returned data
int
NR_reg_alloc_data(NR_registry name, Data *data)
{
    int r, _status;
    size_t length;
    UCHAR  *tmp = 0;
    size_t sanity_check;

    if ((r=NR_reg_get_length(name, &length)))
        ABORT(r);

    if (!(tmp = (void*)RMALLOC(length)))
        ABORT(R_NO_MEMORY);

    if ((r=NR_reg_get_bytes(name, tmp, length, &sanity_check)))
        ABORT(r);

    assert(length == sanity_check);

    data->len = length;
    data->data = tmp;

    _status=0;
abort:
    if (_status) {
        if (tmp) RFREE(tmp);
    }
    return(_status);
}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:30,代码来源:registry.c


示例19: NR_reg_get_child_registry

int
NR_reg_get_child_registry(char *parent, unsigned int i, NR_registry child)
{
    int r, _status;
    size_t count;
    NR_registry *children=0;

    if ((r=reg_vtbl->vtbl->get_child_count(parent, &count)))
        ABORT(r);

    if (i >= count)
        ABORT(R_NOT_FOUND);
    else {
        count++;
        children = (NR_registry *)RCALLOC(count * sizeof(NR_registry));
        if (!children)
            ABORT(R_NO_MEMORY);

        if ((r=reg_vtbl->vtbl->get_children(parent, children, count, &count)))
            ABORT(r);

        if (i >= count)
            ABORT(R_NOT_FOUND);

        strncpy(child, children[i], sizeof(NR_registry));
    }

    _status=0;
abort:
    RFREE(children);
    return(_status);
}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:32,代码来源:registry.c


示例20: memset

void NicerConnection::setupTurnServer() {
  if (ice_config_.turn_server.empty()) {
    return;
  }
  auto servers = std::unique_ptr<nr_ice_turn_server[]>(new nr_ice_turn_server[1]);
  nr_ice_turn_server *server = &servers[0];
  nr_ice_stun_server *stun_server = &server->turn_server;
  memset(server, 0, sizeof(nr_ice_turn_server));
  stun_server->transport = IPPROTO_UDP;
  stun_server->type = NR_ICE_STUN_SERVER_TYPE_ADDR;
  nr_transport_addr addr;
  nr_str_port_to_transport_addr(ice_config_.turn_server.c_str(), ice_config_.turn_port, IPPROTO_UDP, &addr);
  stun_server->u.addr = addr;

  server->username = r_strdup(const_cast<char*>(ice_config_.turn_username.c_str()));
  int r = r_data_create(&server->password,
                        reinterpret_cast<UCHAR*>(const_cast<char *>(&ice_config_.turn_pass[0])),
                        ice_config_.turn_pass.size());
  if (r) {
    RFREE(server->username);
    return;
  }

  r = nicer_->IceContextSetTurnServers(ctx_, servers.get(), 1);
  if (r) {
    ELOG_WARN("%s message: Could not setup Turn", toLog());
  }

  ELOG_DEBUG("%s message: TURN server configured", toLog());
}
开发者ID:notedit,项目名称:licode,代码行数:30,代码来源:NicerConnection.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ RFX_Long函数代码示例发布时间:2022-05-30
下一篇:
C++ RFLOAT_VALUE函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap