120 #define COL_CLASS_DEFAULT 0 127 #define COL_NOMATCH 0 145 #define COL_TYPE_STRING 0x00000001 147 #define COL_TYPE_BINARY 0x00000002 149 #define COL_TYPE_INTEGER 0x00000004 151 #define COL_TYPE_UNSIGNED 0x00000008 153 #define COL_TYPE_LONG 0x00000010 155 #define COL_TYPE_ULONG 0x00000020 157 #define COL_TYPE_DOUBLE 0x00000040 159 #define COL_TYPE_BOOL 0x00000080 166 #define COL_TYPE_COLLECTION 0x00000100 173 #define COL_TYPE_COLLECTIONREF 0x00000200 179 #define COL_TYPE_END 0x10000000 186 #define COL_TYPE_ANY 0x0FFFFFFF 200 #define COL_ADD_MODE_REFERENCE 0 211 #define COL_ADD_MODE_EMBED 1 217 #define COL_ADD_MODE_CLONE 2 225 #define COL_ADD_MODE_FLAT 3 238 #define COL_ADD_MODE_FLATDOT 4 261 #define COL_TRAVERSE_DEFAULT 0x00000000 269 #define COL_TRAVERSE_ONELEVEL 0x00000001 280 #define COL_TRAVERSE_END 0x00000002 282 #define COL_TRAVERSE_IGNORE 0x00000004 296 #define COL_TRAVERSE_FLAT 0x00000008 322 #define COL_TRAVERSE_SHOWSUB 0x00010000 330 #define COL_TRAVERSE_ONLYSUB 0x00020000 353 #define COL_COPY_NORMAL 0 359 #define COL_COPY_FLAT 1 365 #define COL_COPY_FLATDOT 2 367 #define COL_COPY_KEEPREF 3 369 #define COL_COPY_TOP 4 385 #define COL_SORT_ASC 0x00000000 387 #define COL_SORT_DESC 0x00000001 389 #define COL_SORT_SUB 0x00000002 395 #define COL_SORT_MYSUB 0x00000004 402 #ifndef COLLECTION_PRIV_H 595 const char *name_to_use,
619 const char *name_to_use,
654 const char *subcollection,
655 const char *as_property,
753 const char *property_to_find,
798 const char *property_to_find,
846 const char *subcollection,
847 const char *property_to_find,
884 unsigned sort_flags);
918 const char *property_to_find,
947 const char *property_to_find,
975 const char *col_to_find);
1160 const char *subcollection,
1161 const char *property,
1192 const char *subcollection,
1193 const char *property,
1223 const char *subcollection,
1224 const char *property,
1253 const char *subcollection,
1254 const char *property,
1283 const char *subcollection,
1284 const char *property,
1313 const char *subcollection,
1314 const char *property,
1343 const char *subcollection,
1344 const char *property,
1372 const char *subcollection,
1373 const char *property,
1374 unsigned char logical);
1405 const char *subcollection,
1406 const char *property,
1471 const char *subcollection,
1472 const char *property,
1473 char *
string,
int length,
1505 const char *subcollection,
1506 const char *property,
1507 void *binary_data,
int length,
1538 const char *subcollection,
1539 const char *property, int32_t number,
1570 const char *subcollection,
1571 const char *property, uint32_t number,
1602 const char *subcollection,
1603 const char *property, int64_t number,
1634 const char *subcollection,
1635 const char *property, uint64_t number,
1666 const char *subcollection,
1667 const char *property,
double number,
1698 const char *subcollection,
1699 const char *property,
unsigned char logical,
1733 const char *subcollection,
1734 const char *property,
1735 int type,
void *data,
int length,
1793 const char *subcollection,
1795 const char *refprop,
1798 const char *property,
1804 const char *subcollection,
1806 const char *refprop,
1809 const char *property,
1815 const char *subcollection,
1817 const char *refprop,
1820 const char *property,
1825 const char *subcollection,
1827 const char *refprop,
1830 const char *property,
1835 const char *subcollection,
1837 const char *refprop,
1840 const char *property,
1845 const char *subcollection,
1847 const char *refprop,
1850 const char *property,
1855 const char *subcollection,
1857 const char *refprop,
1860 const char *property,
1865 const char *subcollection,
1867 const char *refprop,
1870 const char *property,
1871 unsigned char logical);
1875 const char *subcollection,
1877 const char *refprop,
1880 const char *property,
1887 const char *subcollection,
1889 const char *refprop,
1892 const char *property,
1899 const char *subcollection,
1901 const char *refprop,
1904 const char *property,
1910 const char *subcollection,
1912 const char *refprop,
1915 const char *property,
1921 const char *subcollection,
1923 const char *refprop,
1926 const char *property,
1932 const char *subcollection,
1934 const char *refprop,
1937 const char *property,
1946 const char *subcollection,
1948 const char *refprop,
1951 const char *property,
1957 const char *subcollection,
1959 const char *refprop,
1962 const char *property,
1963 unsigned char logical,
1968 const char *subcollection,
1970 const char *refprop,
1973 const char *property,
2029 const char *property,
2037 const char *property,
2045 const char *property,
2052 const char *property,
2059 const char *property,
2066 const char *property,
2073 const char *property,
2080 const char *property,
2082 unsigned char logical);
2092 const char *property,
2130 #define COL_CMPIN_PROP_EQU 0x000000004 2132 #define COL_CMPIN_PROP_BEG 0x000000005 2134 #define COL_CMPIN_PROP_MID 0x000000006 2136 #define COL_CMPIN_PROP_END 0x000000007 2149 #define COL_CMPIN_PROP_DOT 0x000000008 2152 #define COL_CMPIN_PROP_LEN 0x000000010 2155 #define COL_CMPIN_TYPE 0x000000020 2158 #define COL_CMPIN_DATA_LEN 0x000000040 2168 #define COL_CMPIN_DATA 0x000000080 2190 #define COL_CMPOUT_PROP_STR 0x00000001 2198 #define COL_CMPOUT_PROP_LEN 0x00000002 2205 #define COL_CMPOUT_DATA_LEN 0x00000004 2214 #define COL_CMPOUT_DATA 0x00000008 2241 #define COL_DSP_END 0 2252 #define COL_DSP_FRONT 1 2265 #define COL_DSP_BEFORE 2 2278 #define COL_DSP_AFTER 3 2297 #define COL_DSP_INDEX 4 2315 #define COL_DSP_FIRSTDUP 5 2335 #define COL_DSP_LASTDUP 6 2365 #define COL_DSP_NDUP 7 2385 #define COL_DSP_LASTDUPNS 8 2415 #define COL_DSP_NDUPNS 9 2435 #define COL_INSERT_NOCHECK 0 2440 #define COL_INSERT_DUPOVER 1 2445 #define COL_INSERT_DUPOVERT 2 2447 #define COL_INSERT_DUPERROR 3 2452 #define COL_INSERT_DUPERRORT 4 2456 #define COL_INSERT_DUPMOVE 5 2460 #define COL_INSERT_DUPMOVET 6 2578 uint64_t
col_make_hash(
const char *
string,
int sub_len,
int *length);
2610 unsigned *out_flags);
2651 const char *property,
2674 const char *property);
2690 const char *property,
2704 const char *property,
2718 const char *property,
2719 unsigned char logical);
2731 const char *property,
2744 const char *property,
2757 const char *property,
2770 const char *property,
2783 const char *property,
2850 const char *subcollection,
2852 const char *refprop,
2899 const char *refprop,
2952 const char *subcollection,
2954 const char *refprop,
3009 const char *subcollection,
3011 const char *refprop,
3057 const char *refprop,
3121 const char *subcollection,
3124 const char *refprop,
3171 const char *refprop,
int col_insert_unsigned_property(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, uint32_t number)
Insert an unsigned property.
Definition: collection_cnv.c:133
int col_update_property(struct collection_item *ci, const char *property, int type, void *new_data, int length, int mode_flags)
Definition: collection.c:3048
int col_add_binary_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, void *binary_data, int length, struct collection_item **ret_ref)
Add a binary property to a collection.
Definition: collection_cnv.c:786
void(* col_item_cleanup_fn)(const char *property, int property_len, int type, void *data, int length, void *custom_data)
Cleanup Callback.
Definition: collection.h:507
void col_unbind_iterator(struct collection_iterator *iterator)
Unbind the iterator from the collection.
Definition: collection_iter.c:187
int col_remove_item_from_current(struct collection_item *ci, int disposition, const char *refprop, int idx, int type)
Remove item from the current collection.
Definition: collection.c:1055
int col_add_collection_to_collection(struct collection_item *ci, const char *subcollection, const char *as_property, struct collection_item *ci_to_add, int mode)
Add collection to collection.
Definition: collection.c:2685
int col_create_collection(struct collection_item **ci, const char *name, unsigned cclass)
Create a collection.
Definition: collection.c:2410
void col_destroy_collection(struct collection_item *ci)
Destroy a collection.
Definition: collection.c:2489
int col_get_collection_count(struct collection_item *ci, unsigned *count)
Get count of the elements.
Definition: collection.c:3185
int col_get_collection_class(struct collection_item *ci, unsigned *cclass)
Get collection class.
Definition: collection.c:3166
int col_modify_int_item(struct collection_item *item, const char *property, int32_t number)
Modify item value to be an integer.
Definition: collection_cnv.c:1197
int col_add_str_property(struct collection_item *ci, const char *subcollection, const char *property, const char *string, int length)
Add a string property to a collection.
Definition: collection_cnv.c:543
int col_modify_unsigned_item(struct collection_item *item, const char *property, uint32_t number)
Modify item value to be an unsigned integer.
Definition: collection_cnv.c:1244
int col_extract_item(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, int type, struct collection_item **ret_ref)
Extract item from the collection.
Definition: collection.c:941
int col_insert_int_property(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, int32_t number)
Insert an integer property.
Definition: collection_cnv.c:102
int col_insert_ulong_property(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, uint64_t number)
Insert an unsigned long property.
Definition: collection_cnv.c:194
int col_bind_iterator(struct collection_iterator **iterator, struct collection_item *ci, int mode_flags)
Bind iterator to a collection.
Definition: collection_iter.c:62
int col_insert_long_property(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, int64_t number)
Insert a long property.
Definition: collection_cnv.c:164
uint64_t col_make_hash(const char *string, int sub_len, int *length)
Calculate hash value for a string.
Definition: collection.c:3257
int col_get_item(struct collection_item *ci, const char *property_to_find, int type, int mode_flags, struct collection_item **item)
Search function to get an item.
Definition: collection.c:3001
int col_get_dup_item(struct collection_item *ci, const char *subcollection, const char *property_to_find, int type, int idx, int exact, struct collection_item **item)
Search function to get one of the duplicate items.
Definition: collection.c:420
Opaque iterator structure.
Definition: collection.h:418
int col_set_collection_class(struct collection_item *ci, unsigned cclass)
Set collection class.
Definition: collection.c:3147
int col_insert_item_into_current(struct collection_item *ci, struct collection_item *item, int disposition, const char *refprop, int idx, unsigned flags)
Insert item to the current collection.
Definition: collection.c:474
int col_insert_double_property(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, double number)
Insert a property with a floating point value.
Definition: collection_cnv.c:224
int col_add_ulong_property(struct collection_item *ci, const char *subcollection, const char *property, uint64_t number)
Add an unsigned long property to a collection.
Definition: collection_cnv.c:663
int col_modify_item(struct collection_item *item, const char *property, int type, const void *data, int length)
Modify any item element.
Definition: collection.c:3078
int col_sort_collection(struct collection_item *col, unsigned cmp_flags, unsigned sort_flags)
Sort collection.
Definition: collection_cmp.c:296
int col_add_int_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, int32_t number, struct collection_item **ret_ref)
Add an integer property to a collection.
Definition: collection_cnv.c:812
int col_insert_item(struct collection_item *ci, const char *subcollection, struct collection_item *item, int disposition, const char *refprop, int idx, unsigned flags)
Insert item to the collection.
Definition: collection.c:1079
int col_update_bool_property(struct collection_item *ci, const char *property, int mode_flags, unsigned char logical)
Definition: collection_cnv.c:1113
int col_insert_str_property(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, const char *string, int length)
Insert a string property.
Definition: collection_cnv.c:37
int col_remove_item(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, int type)
Remove item from the collection.
Definition: collection.c:1035
int col_get_item_type(struct collection_item *ci)
Get item type.
Definition: collection.c:3229
int col_modify_str_item(struct collection_item *item, const char *property, const char *string, int length)
Modify item value to be a string.
Definition: collection_cnv.c:1145
int col_is_of_class(struct collection_item *ci, unsigned cclass)
Check the class of collection.
Definition: collection.c:3206
int(* col_item_fn)(const char *property, int property_len, int type, void *data, int length, void *custom_data, int *stop)
Search Callback.
Definition: collection.h:684
int col_get_iterator_depth(struct collection_iterator *iterator, int *depth)
Get current depth.
Definition: collection_iter.c:151
int col_extract_item_from_current(struct collection_item *ci, int disposition, const char *refprop, int idx, int type, struct collection_item **ret_ref)
Extract item from the current collection.
Definition: collection.c:746
int col_modify_binary_item(struct collection_item *item, const char *property, void *binary_data, int length)
Modify item value to be a binary blob.
Definition: collection_cnv.c:1166
int col_insert_bool_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, unsigned char logical, struct collection_item **ret_ref)
Insert a property with a Boolean value and get back a reference.
Definition: collection_cnv.c:511
int col_modify_ulong_item(struct collection_item *item, const char *property, uint64_t number)
Modify item value to be an unsigned long.
Definition: collection_cnv.c:1229
int col_insert_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, int type, const void *data, int length, struct collection_item **ret_ref)
Insert property of any type and get back a reference.
Definition: collection.c:1254
int col_add_double_property(struct collection_item *ci, const char *subcollection, const char *property, double number)
Add a property of type double to a collection.
Definition: collection_cnv.c:686
int col_update_unsigned_property(struct collection_item *ci, const char *property, int mode_flags, uint32_t number)
Definition: collection_cnv.c:1044
int col_get_reference_from_item(struct collection_item *item, struct collection_item **acceptor)
Get a reference from the item.
Definition: collection.c:2654
int col_get_item_and_do(struct collection_item *ci, const char *property_to_find, int type, int mode_flags, col_item_fn item_handler, void *custom_data)
Search and do function.
Definition: collection.c:2978
int col_add_long_property(struct collection_item *ci, const char *subcollection, const char *property, int64_t number)
Add an long property to a collection.
Definition: collection_cnv.c:639
int col_delete_property(struct collection_item *ci, const char *property_to_find, int type, int mode_flags)
Delete property.
Definition: collection.c:3023
void col_destroy_collection_with_cb(struct collection_item *ci, col_item_cleanup_fn cb, void *custom_data)
Destroy a collection with callback.
Definition: collection.c:2451
int col_get_item_length(struct collection_item *ci)
Get value length from the item.
Definition: collection.c:3235
int col_modify_item_property(struct collection_item *item, const char *property)
Modify item property.
Definition: collection_cnv.c:1130
int col_insert_unsigned_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, uint32_t number, struct collection_item **ret_ref)
Insert an unsigned property and get back a reference.
Definition: collection_cnv.c:387
int col_update_int_property(struct collection_item *ci, const char *property, int mode_flags, int32_t number)
Definition: collection_cnv.c:1028
int col_get_item_depth(struct collection_iterator *iterator, int *depth)
Get depth of the last returned item.
Definition: collection_iter.c:168
int col_remove_item_with_cb(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, int type, col_item_cleanup_fn cb, void *custom_data)
Remove item from the collection.
Definition: collection.c:1001
int col_insert_ulong_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, uint64_t number, struct collection_item **ret_ref)
Insert an unsigned long property and get back a reference.
Definition: collection_cnv.c:449
Opaque structure that holds one property.
int col_traverse_collection(struct collection_item *ci, int mode_flags, col_item_fn item_handler, void *custom_data)
Traverse collection.
Definition: collection.c:2922
uint64_t col_get_item_hash(struct collection_item *ci)
Get hash value from the item.
Definition: collection.c:3247
int col_get_collection_reference(struct collection_item *ci, struct collection_item **acceptor, const char *col_to_find)
Get a reference to a collection.
Definition: collection.c:2599
int col_iterate_up(struct collection_iterator *iterator, unsigned level)
Move up.
Definition: collection_iter.c:127
int col_update_long_property(struct collection_item *ci, const char *property, int mode_flags, int64_t number)
Definition: collection_cnv.c:1061
int col_insert_str_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, const char *string, int length, struct collection_item **ret_ref)
Insert a string property and get back a reference.
Definition: collection_cnv.c:285
int col_add_int_property(struct collection_item *ci, const char *subcollection, const char *property, int32_t number)
Add an integer property to a collection.
Definition: collection_cnv.c:593
int col_insert_int_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, int32_t number, struct collection_item **ret_ref)
Insert an integer property and get back a reference.
Definition: collection_cnv.c:355
void col_delete_item_with_cb(struct collection_item *item, col_item_cleanup_fn cb, void *custom_data)
Delete extracted item with callback.
Definition: collection.c:172
int col_update_binary_property(struct collection_item *ci, const char *property, int mode_flags, void *binary_data, int length)
Definition: collection_cnv.c:1011
int col_copy_collection(struct collection_item **col_copy, struct collection_item *col_to_copy, const char *name_to_use, int copy_mode)
Copy collection without data modification.
Definition: collection.c:2501
int col_is_item_in_collection(struct collection_item *ci, const char *property_to_find, int type, int mode_flags, int *found)
Is property in the collection?
Definition: collection.c:2953
int col_modify_double_item(struct collection_item *item, const char *property, double number)
Modify item value to be a floating point.
Definition: collection_cnv.c:1259
int col_update_double_property(struct collection_item *ci, const char *property, int mode_flags, double number)
Definition: collection_cnv.c:1096
int col_iterate_collection(struct collection_iterator *iterator, struct collection_item **item)
Iterate collection.
Definition: collection_iter.c:200
int col_insert_double_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, double number, struct collection_item **ret_ref)
Insert a property with a floating point value and get back a reference.
Definition: collection_cnv.c:480
void * col_get_item_data(struct collection_item *ci)
Get value from the item.
Definition: collection.c:3241
void col_pin_iterator(struct collection_iterator *iterator)
Pin iterator.
Definition: collection_iter.c:381
int col_add_any_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, int type, void *data, int length, struct collection_item **ret_ref)
Add a property of a specified type to a collection.
Definition: collection_cnv.c:962
void col_delete_item(struct collection_item *item)
Delete extracted item.
Definition: collection.c:213
int col_modify_long_item(struct collection_item *item, const char *property, int64_t number)
Modify item value to be a long integer.
Definition: collection_cnv.c:1213
int col_add_unsigned_property(struct collection_item *ci, const char *subcollection, const char *property, uint32_t number)
Add an unsigned integer property to a collection.
Definition: collection_cnv.c:616
int col_insert_binary_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, void *binary_data, int length, struct collection_item **ret_ref)
Insert a binary property and get back a reference.
Definition: collection_cnv.c:323
int col_add_long_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, int64_t number, struct collection_item **ret_ref)
Add an long property to a collection.
Definition: collection_cnv.c:862
int col_insert_long_property_with_ref(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, int64_t number, struct collection_item **ret_ref)
Insert a long property and get back a reference.
Definition: collection_cnv.c:418
int col_update_ulong_property(struct collection_item *ci, const char *property, int mode_flags, uint64_t number)
Definition: collection_cnv.c:1079
int col_add_double_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, double number, struct collection_item **ret_ref)
Add a property of type double to a collection.
Definition: collection_cnv.c:912
int col_update_str_property(struct collection_item *ci, const char *property, int mode_flags, char *string, int length)
Definition: collection_cnv.c:993
const char * col_get_item_property(struct collection_item *ci, int *property_len)
Get item property.
Definition: collection.c:3221
int col_insert_binary_property(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, void *binary_data, int length)
Insert a binary property.
Definition: collection_cnv.c:70
int col_add_any_property(struct collection_item *ci, const char *subcollection, const char *property, int type, void *data, int length)
Add a property of a specified type to a collection.
Definition: collection_cnv.c:732
int col_add_bool_property(struct collection_item *ci, const char *subcollection, const char *property, unsigned char logical)
Add a Boolean property to a collection.
Definition: collection_cnv.c:709
int col_insert_bool_property(struct collection_item *ci, const char *subcollection, int disposition, const char *refprop, int idx, unsigned flags, const char *property, unsigned char logical)
Insert a property with a Boolean value.
Definition: collection_cnv.c:254
int col_add_str_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, char *string, int length, struct collection_item **ret_ref)
Add a string property to a collection.
Definition: collection_cnv.c:760
int col_compare_items(struct collection_item *first, struct collection_item *second, unsigned in_flags, unsigned *out_flags)
Compare two items.
Definition: collection_cmp.c:51
int col_add_bool_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, unsigned char logical, struct collection_item **ret_ref)
Add a Boolean property to a collection.
Definition: collection_cnv.c:937
int col_add_binary_property(struct collection_item *ci, const char *subcollection, const char *property, void *binary_data, int length)
Add a binary property to a collection.
Definition: collection_cnv.c:568
int col_modify_bool_item(struct collection_item *item, const char *property, unsigned char logical)
Modify item value to be a Boolean.
Definition: collection_cnv.c:1182
int col_add_ulong_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, uint64_t number, struct collection_item **ret_ref)
Add an unsigned long property to a collection.
Definition: collection_cnv.c:887
void col_rewind_iterator(struct collection_iterator *iterator)
Rewind iterator.
Definition: collection_iter.c:410
int col_add_unsigned_property_with_ref(struct collection_item *ci, const char *subcollection, const char *property, uint32_t number, struct collection_item **ret_ref)
Add an unsigned integer property to a collection.
Definition: collection_cnv.c:837
int col_copy_collection_with_cb(struct collection_item **col_copy, struct collection_item *col_to_copy, const char *name_to_use, int copy_mode, col_copy_cb copy_cb, void *ext_data)
Copy collection with data modification.
Definition: collection.c:2522
int(* col_copy_cb)(struct collection_item *item, void *ext_data, int *skip)
Copy item callback.
Definition: collection.h:563