1 /* $Id: ppath.h,v 1.1 2011/08/25 16:15:29 dyoung Exp $ */
3 /* Copyright (c) 2010 David Young. All rights reserved. */
8 #include <prop/proplib.h>
10 #define PPATH_MAX_COMPONENTS 16
13 struct _ppath_component
;
14 typedef struct _ppath ppath_t
;
15 typedef struct _ppath_component ppath_component_t
;
17 ppath_component_t
*ppath_idx(unsigned int);
18 ppath_component_t
*ppath_key(const char *);
20 ppath_component_t
*ppath_component_retain(ppath_component_t
*);
21 void ppath_component_release(ppath_component_t
*);
23 ppath_t
*ppath_create(void);
24 unsigned int ppath_length(const ppath_t
*);
25 int ppath_component_idx(const ppath_component_t
*);
26 const char *ppath_component_key(const ppath_component_t
*);
27 ppath_t
*ppath_pop(ppath_t
*, ppath_component_t
**);
28 ppath_t
*ppath_push(ppath_t
*, ppath_component_t
*);
29 ppath_component_t
*ppath_component_at(const ppath_t
*, unsigned int);
30 ppath_t
*ppath_subpath(const ppath_t
*, unsigned int, unsigned int);
31 ppath_t
*ppath_push_idx(ppath_t
*, unsigned int);
32 ppath_t
*ppath_push_key(ppath_t
*, const char *);
33 ppath_t
*ppath_replace_idx(ppath_t
*, unsigned int);
34 ppath_t
*ppath_replace_key(ppath_t
*, const char *);
36 ppath_t
*ppath_copy(const ppath_t
*);
37 ppath_t
*ppath_retain(ppath_t
*);
38 void ppath_release(ppath_t
*);
40 prop_object_t
ppath_lookup(prop_object_t
, const ppath_t
*);
42 int ppath_copydel_object(prop_object_t
, prop_object_t
*, const ppath_t
*);
43 int ppath_copyset_object(prop_object_t
, prop_object_t
*, const ppath_t
*,
45 int ppath_create_object(prop_object_t
, const ppath_t
*, prop_object_t
);
46 int ppath_set_object(prop_object_t
, const ppath_t
*, prop_object_t
);
47 int ppath_get_object(prop_object_t
, const ppath_t
*, prop_object_t
*);
48 int ppath_delete_object(prop_object_t
, const ppath_t
*);
50 int ppath_copydel_bool(prop_object_t
, prop_object_t
*, const ppath_t
*);
51 int ppath_copyset_bool(prop_object_t
, prop_object_t
*, const ppath_t
*, bool);
52 int ppath_create_bool(prop_object_t
, const ppath_t
*, bool);
53 int ppath_create_int64(prop_object_t
, const ppath_t
*, int64_t);
54 int ppath_create_uint64(prop_object_t
, const ppath_t
*, uint64_t);
55 int ppath_create_data(prop_object_t
, const ppath_t
*, const void *, size_t);
56 int ppath_create_string(prop_object_t
, const ppath_t
*, const char *);
57 int ppath_set_bool(prop_object_t
, const ppath_t
*, bool);
58 int ppath_get_bool(prop_object_t
, const ppath_t
*, bool *);
59 int ppath_delete_bool(prop_object_t
, const ppath_t
*);
61 int ppath_copydel_data(prop_object_t
, prop_object_t
*, const ppath_t
*);
62 int ppath_copyset_data(prop_object_t
, prop_object_t
*, const ppath_t
*,
63 const void *, size_t);
64 int ppath_set_data(prop_object_t
, const ppath_t
*, const void *, size_t);
65 int ppath_get_data(prop_object_t
, const ppath_t
*, const void **, size_t *);
66 int ppath_dup_data(prop_object_t
, const ppath_t
*, void **, size_t *);
67 int ppath_delete_data(prop_object_t
, const ppath_t
*);
69 int ppath_copydel_int64(prop_object_t
, prop_object_t
*, const ppath_t
*);
70 int ppath_copyset_int64(prop_object_t
, prop_object_t
*, const ppath_t
*,
72 int ppath_set_int64(prop_object_t
, const ppath_t
*, int64_t);
73 int ppath_get_int64(prop_object_t
, const ppath_t
*, int64_t *);
74 int ppath_delete_int64(prop_object_t
, const ppath_t
*);
76 int ppath_copydel_string(prop_object_t
, prop_object_t
*, const ppath_t
*);
77 int ppath_copyset_string(prop_object_t
, prop_object_t
*, const ppath_t
*,
79 int ppath_set_string(prop_object_t
, const ppath_t
*, const char *);
80 int ppath_get_string(prop_object_t
, const ppath_t
*, const char **);
81 int ppath_dup_string(prop_object_t
, const ppath_t
*, char **);
82 int ppath_delete_string(prop_object_t
, const ppath_t
*);
84 int ppath_copydel_uint64(prop_object_t
, prop_object_t
*, const ppath_t
*);
85 int ppath_copyset_uint64(prop_object_t
, prop_object_t
*, const ppath_t
*,
87 int ppath_set_uint64(prop_object_t
, const ppath_t
*, uint64_t);
88 int ppath_get_uint64(prop_object_t
, const ppath_t
*, uint64_t *);
89 int ppath_delete_uint64(prop_object_t
, const ppath_t
*);