You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
6.2 KiB
158 lines
6.2 KiB
<class name = "zlist" state = "stable">
|
|
<!--
|
|
Copyright (c) the Contributors as noted in the AUTHORS file.
|
|
This file is part of CZMQ, the high-level C binding for 0MQ:
|
|
http://czmq.zeromq.org.
|
|
|
|
This Source Code Form is subject to the terms of the Mozilla Public
|
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
-->
|
|
simple generic list container
|
|
|
|
<callback_type name = "compare_fn">
|
|
Comparison function e.g. for sorting and removing.
|
|
<argument name = "item1" type = "anything" />
|
|
<argument name = "item2" type = "anything" />
|
|
<return type = "integer" />
|
|
</callback_type>
|
|
|
|
<callback_type name = "free_fn">
|
|
Callback function for zlist_freefn method
|
|
<argument name = "data" type = "anything" />
|
|
</callback_type>
|
|
|
|
<constructor>
|
|
Create a new list container
|
|
</constructor>
|
|
|
|
<destructor>
|
|
Destroy a list container
|
|
</destructor>
|
|
|
|
<method name = "first">
|
|
Return the item at the head of list. If the list is empty, returns NULL.
|
|
Leaves cursor pointing at the head item, or NULL if the list is empty.
|
|
<return type = "anything" />
|
|
</method>
|
|
|
|
<method name = "next">
|
|
Return the next item. If the list is empty, returns NULL. To move to
|
|
the start of the list call zlist_first (). Advances the cursor.
|
|
<return type = "anything" />
|
|
</method>
|
|
|
|
<method name = "last">
|
|
Return the item at the tail of list. If the list is empty, returns NULL.
|
|
Leaves cursor pointing at the tail item, or NULL if the list is empty.
|
|
<return type = "anything" />
|
|
</method>
|
|
|
|
<method name = "head">
|
|
Return first item in the list, or null, leaves the cursor
|
|
<return type = "anything" />
|
|
</method>
|
|
|
|
<method name = "tail">
|
|
Return last item in the list, or null, leaves the cursor
|
|
<return type = "anything" />
|
|
</method>
|
|
|
|
<method name = "item">
|
|
Return the current item of list. If the list is empty, returns NULL.
|
|
Leaves cursor pointing at the current item, or NULL if the list is empty.
|
|
<return type = "anything" />
|
|
</method>
|
|
|
|
<method name = "append">
|
|
Append an item to the end of the list, return 0 if OK or -1 if this
|
|
failed for some reason (out of memory). Note that if a duplicator has
|
|
been set, this method will also duplicate the item.
|
|
<argument name = "item" type = "anything" />
|
|
<return type = "integer" />
|
|
</method>
|
|
|
|
<method name = "push">
|
|
Push an item to the start of the list, return 0 if OK or -1 if this
|
|
failed for some reason (out of memory). Note that if a duplicator has
|
|
been set, this method will also duplicate the item.
|
|
<argument name = "item" type = "anything" />
|
|
<return type = "integer" />
|
|
</method>
|
|
|
|
<method name = "pop">
|
|
Pop the item off the start of the list, if any
|
|
<return type = "anything" />
|
|
</method>
|
|
|
|
<method name = "exists">
|
|
Checks if an item already is present. Uses compare method to determine if
|
|
items are equal. If the compare method is NULL the check will only compare
|
|
pointers. Returns true if item is present else false.
|
|
<argument name = "item" type = "anything" />
|
|
<return type = "boolean" />
|
|
</method>
|
|
|
|
<method name = "remove">
|
|
Remove the specified item from the list if present
|
|
<argument name = "item" type = "anything" />
|
|
</method>
|
|
|
|
<method name = "dup">
|
|
Make a copy of list. If the list has autofree set, the copied list will
|
|
duplicate all items, which must be strings. Otherwise, the list will hold
|
|
pointers back to the items in the original list. If list is null, returns
|
|
NULL.
|
|
<return type = "zlist" fresh = "1" />
|
|
</method>
|
|
|
|
<method name = "purge">
|
|
Purge all items from list
|
|
</method>
|
|
|
|
<method name = "size">
|
|
Return number of items in the list
|
|
<return type = "size" />
|
|
</method>
|
|
|
|
<method name = "sort">
|
|
Sort the list. If the compare function is null, sorts the list by
|
|
ascending key value using a straight ASCII comparison. If you specify
|
|
a compare function, this decides how items are sorted. The sort is not
|
|
stable, so may reorder items with the same keys. The algorithm used is
|
|
combsort, a compromise between performance and simplicity.
|
|
<argument name = "compare" type = "zlist_compare_fn" callback = "1" />
|
|
</method>
|
|
|
|
<method name = "autofree">
|
|
Set list for automatic item destruction; item values MUST be strings.
|
|
By default a list item refers to a value held elsewhere. When you set
|
|
this, each time you append or push a list item, zlist will take a copy
|
|
of the string value. Then, when you destroy the list, it will free all
|
|
item values automatically. If you use any other technique to allocate
|
|
list values, you must free them explicitly before destroying the list.
|
|
The usual technique is to pop list items and destroy them, until the
|
|
list is empty.
|
|
</method>
|
|
|
|
<method name = "comparefn">
|
|
Sets a compare function for this list. The function compares two items.
|
|
It returns an integer less than, equal to, or greater than zero if the
|
|
first item is found, respectively, to be less than, to match, or be
|
|
greater than the second item.
|
|
This function is used for sorting, removal and exists checking.
|
|
<argument name = "fn" type = "zlist_compare_fn" callback = "1" />
|
|
</method>
|
|
|
|
<method name = "freefn">
|
|
Set a free function for the specified list item. When the item is
|
|
destroyed, the free function, if any, is called on that item.
|
|
Use this when list items are dynamically allocated, to ensure that
|
|
you don't have memory leaks. You can pass 'free' or NULL as a free_fn.
|
|
Returns the item, or NULL if there is no such item.
|
|
<argument name = "item" type = "anything" />
|
|
<argument name = "fn" type = "zlist_free_fn" callback = "1" />
|
|
<argument name = "at tail" type = "boolean" />
|
|
<return type = "anything" />
|
|
</method>
|
|
</class>
|
|
|