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.
		
		
		
		
		
			
		
			
				
					
					
						
							220 lines
						
					
					
						
							9.0 KiB
						
					
					
				
			
		
		
	
	
							220 lines
						
					
					
						
							9.0 KiB
						
					
					
				| <class name = "zlistx" 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/.
 | |
|     -->
 | |
|     extended generic list container
 | |
| 
 | |
|     <callback_type name = "destructor_fn">
 | |
|         Destroy an item
 | |
|         <argument name = "item" type = "anything" by_reference = "1" />
 | |
|     </callback_type>
 | |
| 
 | |
|     <callback_type name = "duplicator_fn">
 | |
|         Duplicate an item
 | |
|         <argument name = "item" type = "anything" mutable = "0" />
 | |
|         <return type = "anything" />
 | |
|     </callback_type>
 | |
| 
 | |
|     <callback_type name = "comparator_fn">
 | |
|         Compare two items, for sorting
 | |
|         <argument name = "item1" type = "anything" mutable = "0" />
 | |
|         <argument name = "item2" type = "anything" mutable = "0" />
 | |
|         <return type = "integer" />
 | |
|     </callback_type>
 | |
| 
 | |
|     <constructor>
 | |
|         Create a new, empty list.
 | |
|     </constructor>
 | |
| 
 | |
|     <destructor>
 | |
|         Destroy a list. If an item destructor was specified, all items in the
 | |
|         list are automatically destroyed as well.
 | |
|     </destructor>
 | |
| 
 | |
|     <method name = "add_start">
 | |
|         Add an item to the head of the list. Calls the item duplicator, if any,
 | |
|         on the item. Resets cursor to list head. Returns an item handle on
 | |
|         success, NULL if memory was exhausted.
 | |
|         <argument name = "item" type = "anything" mutable = "1" />
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "add_end">
 | |
|         Add an item to the tail of the list. Calls the item duplicator, if any,
 | |
|         on the item. Resets cursor to list head. Returns an item handle on
 | |
|         success, NULL if memory was exhausted.
 | |
|         <argument name = "item" type = "anything" mutable = "1" />
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "size">
 | |
|         Return the number of items in the list
 | |
|         <return type = "size" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "head">
 | |
|         Return first item in the list, or null, leaves the cursor
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "tail">
 | |
|         Return last item in the list, or null, leaves the cursor
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <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" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "next">
 | |
|         Return the next item. At the end of the list (or in an empty list),
 | |
|         returns NULL. Use repeated zlistx_next () calls to work through the list
 | |
|         from zlistx_first (). First time, acts as zlistx_first().
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "prev">
 | |
|         Return the previous item. At the start of the list (or in an empty list),
 | |
|         returns NULL. Use repeated zlistx_prev () calls to work through the list
 | |
|         backwards from zlistx_last (). First time, acts as zlistx_last().
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </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" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "item">
 | |
|         Returns the value of the item at the cursor, or NULL if the cursor is
 | |
|         not pointing to an item.
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "cursor">
 | |
|         Returns the handle of the item at the cursor, or NULL if the cursor is
 | |
|         not pointing to an item.
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "handle_item" singleton = "1">
 | |
|         Returns the item associated with the given list handle, or NULL if passed
 | |
|         in handle is NULL. Asserts that the passed in handle points to a list element.
 | |
|         <argument name = "handle" type = "anything" mutable = "1" />
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "find">
 | |
|         Find an item in the list, searching from the start. Uses the item
 | |
|         comparator, if any, else compares item values directly. Returns the
 | |
|         item handle found, or NULL. Sets the cursor to the found item, if any.
 | |
|         <argument name = "item" type = "anything" mutable = "1" />
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "detach">
 | |
|         Detach an item from the list, using its handle. The item is not modified,
 | |
|         and the caller is responsible for destroying it if necessary. If handle is
 | |
|         null, detaches the first item on the list. Returns item that was detached,
 | |
|         or null if none was. If cursor was at item, moves cursor to previous item,
 | |
|         so you can detach items while iterating forwards through a list.
 | |
|         <argument name = "handle" type = "anything" mutable = "1" />
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "detach_cur">
 | |
|         Detach item at the cursor, if any, from the list. The item is not modified,
 | |
|         and the caller is responsible for destroying it as necessary. Returns item
 | |
|         that was detached, or null if none was. Moves cursor to previous item, so
 | |
|         you can detach items while iterating forwards through a list.
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "delete">
 | |
|         Delete an item, using its handle. Calls the item destructor is any is
 | |
|         set. If handle is null, deletes the first item on the list. Returns 0
 | |
|         if an item was deleted, -1 if not. If cursor was at item, moves cursor
 | |
|         to previous item, so you can delete items while iterating forwards
 | |
|         through a list.
 | |
|         <argument name = "handle" type = "anything" mutable = "1" />
 | |
|         <return type = "integer" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "move_start">
 | |
|         Move an item to the start of the list, via its handle.
 | |
|         <argument name = "handle" type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "move_end">
 | |
|         Move an item to the end of the list, via its handle.
 | |
|         <argument name = "handle" type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "purge">
 | |
|         Remove all items from the list, and destroy them if the item destructor
 | |
|         is set.
 | |
|     </method>
 | |
| 
 | |
|     <method name = "sort">
 | |
|         Sort the list. If an item comparator was set, calls that to compare
 | |
|         items, otherwise compares on item value. The sort is not stable, so may
 | |
|         reorder equal items.
 | |
|     </method>
 | |
| 
 | |
|     <method name = "insert">
 | |
|         Create a new node and insert it into a sorted list. Calls the item
 | |
|         duplicator, if any, on the item. If low_value is true, starts searching
 | |
|         from the start of the list, otherwise searches from the end. Use the item
 | |
|         comparator, if any, to find where to place the new node. Returns a handle
 | |
|         to the new node, or NULL if memory was exhausted. Resets the cursor to the
 | |
|         list head.
 | |
|         <argument name = "item" type = "anything" mutable = "1" />
 | |
|         <argument name = "low_value" type = "boolean" />
 | |
|         <return type = "anything" mutable = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "reorder">
 | |
|         Move an item, specified by handle, into position in a sorted list. Uses
 | |
|         the item comparator, if any, to determine the new location. If low_value
 | |
|         is true, starts searching from the start of the list, otherwise searches
 | |
|         from the end.
 | |
|         <argument name = "handle" type = "anything" mutable = "1" />
 | |
|         <argument name = "low_value" type = "boolean" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "dup">
 | |
|         Make a copy of the list; items are duplicated if you set a duplicator
 | |
|         for the list, otherwise not. Copying a null reference returns a null
 | |
|         reference.
 | |
|         <return type = "zlistx" fresh = "0" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "set destructor">
 | |
|         Set a user-defined deallocator for list items; by default items are not
 | |
|         freed when the list is destroyed.
 | |
|         <argument name = "destructor" type = "zlistx_destructor_fn" callback = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "set duplicator">
 | |
|         Set a user-defined duplicator for list items; by default items are not
 | |
|         copied when the list is duplicated.
 | |
|         <argument name = "duplicator" type = "zlistx_duplicator_fn" callback = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "set comparator">
 | |
|         Set a user-defined comparator for zlistx_find and zlistx_sort; the method
 | |
|         must return -1, 0, or 1 depending on whether item1 is less than, equal to,
 | |
|         or greater than, item2.
 | |
|         <argument name = "comparator" type = "zlistx_comparator_fn" callback = "1" />
 | |
|     </method>
 | |
| 
 | |
| </class>
 | |
| 
 |