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.
		
		
		
		
			
				
					159 lines
				
				6.2 KiB
			
		
		
			
		
	
	
					159 lines
				
				6.2 KiB
			| 
								 
											7 years ago
										 
									 | 
							
								<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>
							 |