本文整理汇总了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;未经允许,请勿转载。 |
请发表评论