Data Structures | |
| struct | _cp_priority_list |
Files | |
| file | priority_list.h |
push your data on a cp_priority_list then retrieve them by priority. | |
Defines | |
| #define | PRIORITY_LIST_IMMEDIATE 1 |
| #define | PRIORITY_LIST_NORMAL 2 |
| #define | cp_priority_list_create(immediate, normal_priorities, weights) |
| Internal destructor. | |
| #define | cp_priority_list_get_next(l) cp_priority_list_get_next_by_option((l), (l)->mode) |
| Get the "first" entry of the list with default-mode. | |
| #define | cp_priority_list_rdlock(list) cp_priority_list_lock(list, COLLECTION_LOCK_READ) |
| Lock the collection for reading. | |
| #define | cp_priority_list_wrlock(list) cp_priority_list_lock(list, COLLECTION_LOCK_WRITE) |
| Lock the collection for writing. | |
Typedefs | |
|
typedef CPROPS_DLL struct _cp_priority_list | cp_priority_list |
Functions | |
| int | cp_priority_list_txlock (cp_priority_list *list, int type) |
| int | cp_priority_list_txunlock (cp_priority_list *list) |
| static void | cp_priority_list_destroy_internal (cp_priority_list *list) |
| Internal destructor. | |
| void | cp_priority_list_destroy (cp_priority_list *list) |
| Destructor. | |
| void | cp_priority_list_destroy_by_option (cp_priority_list *list, int option) |
| Destructor with locking option. | |
| cp_priority_list * | cp_priority_list_create_by_option (int immediate, int normal_priority_queues, int *weights, cp_compare_fn compare_fn, cp_copy_fn copy_fn, cp_destructor_fn item_destructor, int mode) |
| Constructor with all parameters. | |
| void * | cp_priority_list_insert (cp_priority_list *list, void *item, int priority) |
| Inserts an entry to the list with priority and default-mode. | |
| void * | cp_priority_list_insert_by_option (cp_priority_list *list, void *item, int priority, int mode) |
| Inserts an entry to the list with priority and mode. | |
| int | cp_priority_list_is_empty (cp_priority_list *list) |
| Test if object is empty. | |
| void * | cp_priority_list_get_next_by_option (cp_priority_list *list, int mode) |
| Get the "first" entry of the list with mode. | |
| int | cp_priority_list_lock_internal (cp_priority_list *list, int lock_mode) |
| int | cp_priority_list_unlock_internal (cp_priority_list *list) |
| int | cp_priority_list_lock (cp_priority_list *list, int lock_mode) |
| Lock the collection with mode. | |
| int | cp_priority_list_unlock (cp_priority_list *list) |
| Unlock the collection. | |
| int | cp_priority_list_get_mode (cp_priority_list *list) |
| int | cp_priority_list_set_mode (cp_priority_list *list, int mode) |
| int | cp_priority_list_unset_mode (cp_priority_list *list, int mode) |
| long | cp_priority_list_item_count (cp_priority_list *list) |
| Number of entries in the whole collection. | |
| #define cp_priority_list_create | ( | immediate, | ||
| normal_priorities, | ||||
| weights | ||||
| ) |
cp_priority_list_create_by_option(immediate, normal_priorities, weights, \ NULL, NULL, NULL, COLLECTION_MODE_MULTIPLE_VALUES)
Internal destructor.
Simplified constructor.
| immediate | if true, create an immediate queue | |
| normal_priority_queues | ||
| weights | table of weight factors |
| #define cp_priority_list_get_next | ( | l | ) | cp_priority_list_get_next_by_option((l), (l)->mode) |
Get the "first" entry of the list with default-mode.
The internal algorithm selects one of the non-empty list and returns the first entry of that list.
| #define PRIORITY_LIST_IMMEDIATE 1 |
| CPROPS_DLL cp_priority_list * cp_priority_list_create_by_option | ( | int | immediate, | |
| int | normal_priority_queues, | |||
| int * | weights, | |||
| cp_compare_fn | compare_fn, | |||
| cp_copy_fn | copy_fn, | |||
| cp_destructor_fn | item_destructor, | |||
| int | mode | |||
| ) |
Constructor with all parameters.
| immediate | if true, create an immediate queue | |
| normal_priorities | number of subqueues | |
| weights | table of weight factors | |
| compare_fn | compare method | |
| copy_fn | copy method | |
| mode | operation and locking mode |
| CPROPS_DLL void * cp_priority_list_get_next_by_option | ( | cp_priority_list * | list, | |
| int | mode | |||
| ) |
Get the "first" entry of the list with mode.
The internal algorithm selects one of the non-empty list and returns the first entry of that list.
| CPROPS_DLL void * cp_priority_list_insert | ( | cp_priority_list * | list, | |
| void * | item, | |||
| int | priority | |||
| ) |
Inserts an entry to the list with priority and default-mode.
The entry is added to the list which holds the entries with given priority.
| list | the object | |
| item | the entry object | |
| priority | priority of the entry |
| CPROPS_DLL void * cp_priority_list_insert_by_option | ( | cp_priority_list * | list, | |
| void * | item, | |||
| int | priority, | |||
| int | mode | |||
| ) |
Inserts an entry to the list with priority and mode.
The entry is added to the list which holds the entries with given priority.
| list | the object | |
| item | the entry object | |
| priority | priority of the entry | |
| mode | locking mode |
| CPROPS_DLL int cp_priority_list_is_empty | ( | cp_priority_list * | list | ) |
Test if object is empty.
| true | if no element contained. | |
| false | if at least one element is contained. |
| CPROPS_DLL long cp_priority_list_item_count | ( | cp_priority_list * | list | ) |
Number of entries in the whole collection.
| CPROPS_DLL int cp_priority_list_lock | ( | cp_priority_list * | list, | |
| int | lock_mode | |||
| ) |
Lock the collection with mode.
| list | the object | |
| lock_mode | locking mode |
| int cp_priority_list_txlock | ( | cp_priority_list * | list, | |
| int | type | |||
| ) |
References COLLECTION_LOCK_WRITE, and COLLECTION_MODE_IN_TRANSACTION.
1.7.1