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>
 | 
						|
 |