本文整理汇总了C++中pn_free函数的典型用法代码示例。如果您正苦于以下问题:C++ pn_free函数的具体用法?C++ pn_free怎么用?C++ pn_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pn_free函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: test_list_compare
void test_list_compare(void)
{
pn_list_t *a = pn_list(PN_OBJECT, 0);
pn_list_t *b = pn_list(PN_OBJECT, 0);
assert(pn_equals(a, b));
void *one = pn_class_new(PN_OBJECT, 0);
void *two = pn_class_new(PN_OBJECT, 0);
void *three = pn_class_new(PN_OBJECT, 0);
pn_list_add(a, one);
assert(!pn_equals(a, b));
pn_list_add(b, one);
assert(pn_equals(a, b));
pn_list_add(b, two);
assert(!pn_equals(a, b));
pn_list_add(a, two);
assert(pn_equals(a, b));
pn_list_add(a, three);
assert(!pn_equals(a, b));
pn_list_add(b, three);
assert(pn_equals(a, b));
pn_free(a); pn_free(b);
pn_free(one); pn_free(two); pn_free(three);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:29,代码来源:object.c
示例2: test_list_inspect
void test_list_inspect(void)
{
pn_list_t *l = build_list(0, END);
test_inspect(l, "[]");
pn_free(l);
l = build_list(0, pn_string("one"), END);
test_inspect(l, "[\"one\"]");
pn_free(l);
l = build_list(0,
pn_string("one"),
pn_string("two"),
END);
test_inspect(l, "[\"one\", \"two\"]");
pn_free(l);
l = build_list(0,
pn_string("one"),
pn_string("two"),
pn_string("three"),
END);
test_inspect(l, "[\"one\", \"two\", \"three\"]");
pn_free(l);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:25,代码来源:object.c
示例3: test_build_map_odd
static void test_build_map_odd(void)
{
pn_map_t *m = build_map(0, 0.75,
pn_string("key"),
pn_string("value"),
pn_string("key2"),
pn_string("value2"),
pn_string("key3"),
END);
assert(pn_map_size(m) == 3);
pn_string_t *key = pn_string(NULL);
pn_string_set(key, "key");
assert(pn_strequals(pn_string_get((pn_string_t *) pn_map_get(m, key)),
"value"));
pn_string_set(key, "key2");
assert(pn_strequals(pn_string_get((pn_string_t *) pn_map_get(m, key)),
"value2"));
pn_string_set(key, "key3");
assert(pn_map_get(m, key) == NULL);
pn_free(m);
pn_free(key);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:26,代码来源:object.c
示例4: test_map_links
static void test_map_links(void)
{
const pn_class_t collider_clazz = PN_CLASS(collider);
void *keys[3];
for (int i = 0; i < 3; i++)
keys[i] = pn_class_new(&collider_clazz, 0);
// test deleting a head, middle link, tail
for (int delete_idx=0; delete_idx < 3; delete_idx++) {
pn_map_t *map = pn_map(PN_WEAKREF, PN_WEAKREF, 0, 0.75);
// create a chain of entries that have same head (from identical key hashcode)
for (int i = 0; i < 3; i++) {
pn_map_put(map, keys[i], keys[i]);
}
pn_map_del(map, keys[delete_idx]);
for (int i = 0; i < 3; i++) {
void *value = (i == delete_idx) ? NULL : keys[i];
assert (pn_map_get(map, keys[i]) == value);
}
pn_free(map);
}
for (int i = 0; i < 3; i++)
pn_free(keys[i]);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:25,代码来源:object.c
示例5: smb_lookuppathvptovp
vnode_t *
smb_lookuppathvptovp(smb_request_t *sr, char *path, vnode_t *startvp,
vnode_t *rootvp)
{
pathname_t pn;
vnode_t *vp = NULL;
int lookup_flags = FOLLOW;
if (SMB_TREE_IS_CASEINSENSITIVE(sr))
lookup_flags |= FIGNORECASE;
(void) pn_alloc(&pn);
if (pn_set(&pn, path) == 0) {
VN_HOLD(startvp);
if (rootvp != rootdir)
VN_HOLD(rootvp);
/* lookuppnvp should release the holds */
if (lookuppnvp(&pn, NULL, lookup_flags, NULL, &vp,
rootvp, startvp, kcred) != 0) {
pn_free(&pn);
return (NULL);
}
}
pn_free(&pn);
return (vp);
}
开发者ID:apprisi,项目名称:illumos-gate,代码行数:29,代码来源:smb_pathname.c
示例6: test_compare
static void test_compare(void)
{
static pn_class_t clazz = PN_CLASS(compare);
void *a = pn_class_new(&clazz, 0);
assert(a);
void *b = pn_class_new(&clazz, 0);
assert(b);
assert(pn_compare(a, b));
assert(!pn_equals(a, b));
assert(!pn_compare(a, a));
assert(pn_equals(a, a));
assert(!pn_compare(b, b));
assert(pn_equals(b, b));
assert(pn_compare(a, b) == (intptr_t) ((uintptr_t) b - (uintptr_t) a));
assert(pn_compare(NULL, b));
assert(!pn_equals(NULL, b));
assert(pn_compare(a, NULL));
assert(!pn_equals(a, NULL));
assert(!pn_compare(NULL, NULL));
assert(pn_equals(NULL, NULL));
pn_free(a);
pn_free(b);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:29,代码来源:object.c
示例7: complete_connect
static void complete_connect(connect_result_t *result, HRESULT status)
{
iocpdesc_t *iocpd = result->base.iocpd;
if (iocpd->closing) {
pn_free(result);
reap_check(iocpd);
return;
}
if (status) {
iocpdesc_fail(iocpd, status, "Connect failure");
// Posix sets selectable events as follows:
pni_events_update(iocpd, PN_READABLE | PN_EXPIRED);
} else {
release_sys_sendbuf(iocpd->socket);
if (setsockopt(iocpd->socket, SOL_SOCKET, SO_UPDATE_CONNECT_CONTEXT, NULL, 0)) {
iocpdesc_fail(iocpd, WSAGetLastError(), "Internal connect failure (update context)");
} else {
pni_events_update(iocpd, PN_WRITABLE);
start_reading(iocpd);
}
}
pn_free(result);
return;
}
开发者ID:JemDay,项目名称:qpid-proton,代码行数:25,代码来源:iocp.c
示例8: test_map_inspect
void test_map_inspect(void)
{
// note that when there is more than one entry in a map, the order
// of the entries is dependent on the hashes involved, it will be
// deterministic though
pn_map_t *m = build_map(0, 0.75, END);
test_inspect(m, "{}");
pn_free(m);
m = build_map(0, 0.75,
pn_string("key"), pn_string("value"),
END);
test_inspect(m, "{\"key\": \"value\"}");
pn_free(m);
m = build_map(0, 0.75,
pn_string("k1"), pn_string("v1"),
pn_string("k2"), pn_string("v2"),
END);
test_inspect(m, "{\"k1\": \"v1\", \"k2\": \"v2\"}");
pn_free(m);
m = build_map(0, 0.75,
pn_string("k1"), pn_string("v1"),
pn_string("k2"), pn_string("v2"),
pn_string("k3"), pn_string("v3"),
END);
test_inspect(m, "{\"k3\": \"v3\", \"k1\": \"v1\", \"k2\": \"v2\"}");
pn_free(m);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:30,代码来源:object.c
示例9: resolve_devfs_name
/*
* given an absolute pathname, convert it, if possible, to a devfs
* name. Examples:
* /dev/rsd3a to /[email protected],4000/[email protected]/[email protected],0:a
* /dev/dsk/c0t0d0s0 to /[email protected],4000/[email protected]/[email protected],0:a
* /devices/[email protected],4000/[email protected]/[email protected],0:a to /[email protected],4000/[email protected]/[email protected],0:a
* /[email protected],4000/[email protected]/[email protected],0:a unchanged
*
* This routine deals with symbolic links, physical pathname with and
* without /devices stripped. Returns 0 on success or -1 on failure.
*/
static int
resolve_devfs_name(char *name, char *buffer)
{
int error;
char *fullname = NULL;
struct pathname pn, rpn;
/* if not a /dev or /device name, prepend /devices */
if (strncmp(name, "/dev/", 5) != 0 &&
strncmp(name, "/devices/", 9) != 0) {
fullname = kmem_alloc(MAXPATHLEN, KM_SLEEP);
(void) snprintf(fullname, MAXPATHLEN, "/devices%s", name);
name = fullname;
}
if (pn_get(name, UIO_SYSSPACE, &pn) != 0) {
if (fullname)
kmem_free(fullname, MAXPATHLEN);
return (-1);
}
pn_alloc(&rpn);
error = lookuppn(&pn, &rpn, FOLLOW, NULL, NULL);
if (error == 0)
bcopy(rpn.pn_path, buffer, rpn.pn_pathlen);
pn_free(&pn);
pn_free(&rpn);
if (fullname)
kmem_free(fullname, MAXPATHLEN);
return (error);
}
开发者ID:MatiasNAmendola,项目名称:AuroraUX-SunOS,代码行数:44,代码来源:bootdev.c
示例10: pn_selector_finalize
void pn_selector_finalize(void *obj)
{
pn_selector_t *selector = (pn_selector_t *) obj;
pn_free(selector->selectables);
pn_free(selector->iocp_descriptors);
pn_error_free(selector->error);
selector->iocp->selector = NULL;
}
开发者ID:850361813,项目名称:qpid-proton,代码行数:8,代码来源:selector.c
示例11: pn_subscription_finalize
void pn_subscription_finalize(void *obj)
{
pn_subscription_t *sub = (pn_subscription_t *) obj;
pn_free(sub->scheme);
pn_free(sub->host);
pn_free(sub->port);
pn_free(sub->address);
}
开发者ID:850361813,项目名称:qpid-proton,代码行数:8,代码来源:subscription.c
示例12: sender_cleanup
void sender_cleanup(pn_handler_t *h)
{
sender_context_t *sc = sender_context(h);
pn_message_free(sc->message);
pn_message_free(sc->reply_message);
pn_url_free(sc->send_url);
pn_free(sc->hostname);
pn_free(sc->container_id);
free(sc->encoded_data);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:10,代码来源:reactor-send.c
示例13: localpath
/*
* Given a global path (from rootdir), and a vnode that is the current root,
* return the portion of the path that is beneath the current root or NULL on
* failure. The path MUST be a resolved path (no '..' entries or symlinks),
* otherwise this function will fail.
*/
static char *
localpath(char *path, struct vnode *vrootp, cred_t *cr)
{
vnode_t *vp;
vnode_t *cvp;
char component[MAXNAMELEN];
char *ret = NULL;
pathname_t pn;
/*
* We use vn_compare() instead of VN_CMP() in order to detect lofs
* mounts and stacked vnodes.
*/
if (vn_compare(vrootp, rootdir))
return (path);
if (pn_get(path, UIO_SYSSPACE, &pn) != 0)
return (NULL);
vp = rootdir;
VN_HOLD(vp);
if (vn_ismntpt(vp) && traverse(&vp) != 0) {
VN_RELE(vp);
pn_free(&pn);
return (NULL);
}
while (pn_pathleft(&pn)) {
pn_skipslash(&pn);
if (pn_getcomponent(&pn, component) != 0)
break;
if (VOP_LOOKUP(vp, component, &cvp, &pn, 0, rootdir, cr,
NULL, NULL, NULL) != 0)
break;
VN_RELE(vp);
vp = cvp;
if (vn_ismntpt(vp) && traverse(&vp) != 0)
break;
if (vn_compare(vp, vrootp)) {
ret = path + (pn.pn_path - pn.pn_buf);
break;
}
}
VN_RELE(vp);
pn_free(&pn);
return (ret);
}
开发者ID:bahamas10,项目名称:openzfs,代码行数:60,代码来源:lookup.c
示例14: pni_iocpdesc_finalize
static void pni_iocpdesc_finalize(void *object)
{
iocpdesc_t *iocpd = (iocpdesc_t *) object;
pn_free(iocpd->acceptor);
pn_error_free(iocpd->error);
if (iocpd->pipeline)
if (write_in_progress(iocpd))
iocp_log("iocp descriptor write leak\n");
else
pn_free(iocpd->pipeline);
if (iocpd->read_in_progress)
iocp_log("iocp descriptor read leak\n");
else
free(iocpd->read_result);
}
开发者ID:JemDay,项目名称:qpid-proton,代码行数:15,代码来源:iocp.c
示例15: pn_io_finalize
void pn_io_finalize(void *obj)
{
pn_io_t *io = (pn_io_t *) obj;
pn_error_free(io->error);
pn_free(io->iocp);
WSACleanup();
}
开发者ID:VMinute,项目名称:qpid-proton,代码行数:7,代码来源:io.c
示例16: lookupnameatcred
/*
* Lookup the user file name,
* Handle allocation and freeing of pathname buffer, return error.
*/
int
lookupnameatcred(
char *fnamep, /* user pathname */
enum uio_seg seg, /* addr space that name is in */
int followlink, /* follow sym links */
vnode_t **dirvpp, /* ret for ptr to parent dir vnode */
vnode_t **compvpp, /* ret for ptr to component vnode */
vnode_t *startvp, /* start path search from vp */
cred_t *cr) /* credential */
{
char namebuf[TYPICALMAXPATHLEN];
struct pathname lookpn;
int error;
error = pn_get_buf(fnamep, seg, &lookpn, namebuf, sizeof (namebuf));
if (error == 0) {
error = lookuppnatcred(&lookpn, NULL, followlink,
dirvpp, compvpp, startvp, cr);
}
if (error == ENAMETOOLONG) {
/*
* This thread used a pathname > TYPICALMAXPATHLEN bytes long.
*/
if (error = pn_get(fnamep, seg, &lookpn))
return (error);
error = lookuppnatcred(&lookpn, NULL, followlink,
dirvpp, compvpp, startvp, cr);
pn_free(&lookpn);
}
return (error);
}
开发者ID:bahamas10,项目名称:openzfs,代码行数:36,代码来源:lookup.c
示例17: sender_context_init
void sender_context_init(sender_context_t *sc, Options_t *opts, Statistics_t *stats)
{
sc->opts = opts;
sc->stats = stats;
sc->sent = 0;
sc->received = 0;
sc->id.type = PN_ULONG;
sc->reply_message = 0;
// 4096 extra bytes should easily cover the message metadata
sc->encoded_data_size = sc->opts->msg_size + 4096;
sc->encoded_data = (char *)calloc(1, sc->encoded_data_size);
check(sc->encoded_data, "failed to allocate encoding buffer");
sc->container_id = pn_string("reactor-send"); // prefer uuid-like name
sc->reply_message = (sc->opts->get_replies) ? pn_message() : 0;
sc->message = pn_message();
check(sc->message, "failed to allocate a message");
pn_string_t *rpto = pn_string("amqp://");
pn_string_addf(rpto, "%s", pn_string_get(sc->container_id));
pn_message_set_reply_to(sc->message, pn_string_get(rpto));
pn_free(rpto);
pn_data_t *body = pn_message_body(sc->message);
// borrow the encoding buffer this one time
char *data = sc->encoded_data;
pn_data_put_binary(body, pn_bytes(sc->opts->msg_size, data));
check(sc->opts->targets.count > 0, "no specified address");
sc->send_url = pn_url_parse(sc->opts->targets.addresses[0]);
const char *host = pn_url_get_host(sc->send_url);
const char *port = pn_url_get_port(sc->send_url);
sc->hostname = pn_string(host);
if (port && strlen(port))
pn_string_addf(sc->hostname, ":%s", port);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:34,代码来源:reactor-send.c
示例18: test_inspect
void test_inspect(void *o, const char *expected)
{
pn_string_t *dst = pn_string(NULL);
pn_inspect(o, dst);
assert(pn_strequals(pn_string_get(dst), expected));
pn_free(dst);
}
开发者ID:MZDN,项目名称:qpid-proton,代码行数:7,代码来源:object.c
示例19: smb_tree_acl_access
static void
smb_tree_acl_access(cred_t *cred, const char *sharename, vnode_t *pathvp,
uint32_t *access)
{
int rc;
vfs_t *vfsp;
vnode_t *root = NULL;
vnode_t *sharevp = NULL;
char *sharepath;
struct pathname pnp;
size_t size;
*access = ACE_ALL_PERMS; /* default to full "UNIX" access */
/*
* Using the vnode of the share path, we then find the root
* directory of the mounted file system. We will then look to
* see if there is a .zfs/shares directory and if there is,
* get the access information from the ACL/ACES values and
* check against the cred.
*/
vfsp = pathvp->v_vfsp;
if (vfsp != NULL)
rc = VFS_ROOT(vfsp, &root);
else
rc = ENOENT;
if (rc != 0)
return;
/*
* Find the share object, if there is one. Need to construct
* the path to the .zfs/shares/<sharename> object and look it
* up. root is called held but will be released by
* lookuppnvp().
*/
size = sizeof (SHARES_DIR) + strlen(sharename) + 1;
sharepath = kmem_alloc(size, KM_SLEEP);
(void) sprintf(sharepath, "%s%s", SHARES_DIR, sharename);
pn_alloc(&pnp);
(void) pn_set(&pnp, sharepath);
rc = lookuppnvp(&pnp, NULL, NO_FOLLOW, NULL,
&sharevp, rootdir, root, kcred);
pn_free(&pnp);
kmem_free(sharepath, size);
/*
* Now get the effective access value based on cred and ACL
* values.
*/
if (rc == 0) {
smb_vop_eaccess(sharevp, (int *)access, V_ACE_MASK, NULL, cred);
VN_RELE(sharevp);
}
}
开发者ID:MatiasNAmendola,项目名称:AuroraUX-SunOS,代码行数:60,代码来源:smb_tree.c
示例20: is_nonempty_dir
static int
is_nonempty_dir(char *name, char *pathleft, struct sdev_node *dir)
{
struct match_arg marg;
struct pathname pn;
struct vnode *gvp;
struct sdev_node *gdir = dir->sdev_origin;
if (VOP_LOOKUP(SDEVTOV(gdir), name, &gvp, NULL, 0, NULL, kcred,
NULL, NULL, NULL) != 0)
return (0);
if (gvp->v_type != VDIR) {
VN_RELE(gvp);
return (0);
}
if (pn_get(pathleft, UIO_SYSSPACE, &pn) != 0) {
VN_RELE(gvp);
return (0);
}
marg.expr = kmem_alloc(MAXNAMELEN, KM_SLEEP);
(void) pn_getcomponent(&pn, marg.expr);
marg.match = 0;
walk_dir(gvp, &marg, match_name);
VN_RELE(gvp);
kmem_free(marg.expr, MAXNAMELEN);
pn_free(&pn);
return (marg.match);
}
开发者ID:bahamas10,项目名称:openzfs,代码行数:33,代码来源:sdev_profile.c
注:本文中的pn_free函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论