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.
		
		
		
		
		
			
		
			
				
					
					
						
							183 lines
						
					
					
						
							7.2 KiB
						
					
					
				
			
		
		
	
	
							183 lines
						
					
					
						
							7.2 KiB
						
					
					
				| <class name = "zhash" 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/.
 | |
|     -->
 | |
|     generic type-free hash container (simple)
 | |
| 
 | |
|     <callback_type name = "free_fn">
 | |
|         Callback function for zhash_freefn method
 | |
|         <argument name = "data" type = "anything" />
 | |
|     </callback_type>
 | |
| 
 | |
|     <constructor>
 | |
|         Create a new, empty hash container
 | |
|     </constructor>
 | |
| 
 | |
|     <destructor>
 | |
|         Destroy a hash container and all items in it
 | |
|     </destructor>
 | |
| 
 | |
|     <method name = "insert">
 | |
|         Insert item into hash table with specified key and item.
 | |
|         If key is already present returns -1 and leaves existing item unchanged
 | |
|         Returns 0 on success.
 | |
|         <argument name = "key" type = "string" />
 | |
|         <argument name = "item" type = "anything" />
 | |
|         <return type = "integer" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "update">
 | |
|         Update item into hash table with specified key and item.
 | |
|         If key is already present, destroys old item and inserts new one.
 | |
|         Use free_fn method to ensure deallocator is properly called on item.
 | |
|         <argument name = "key" type = "string" />
 | |
|         <argument name = "item" type = "anything" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "delete">
 | |
|         Remove an item specified by key from the hash table. If there was no such
 | |
|         item, this function does nothing.
 | |
|         <argument name = "key" type = "string" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "lookup">
 | |
|         Return the item at the specified key, or null
 | |
|         <argument name = "key" type = "string" />
 | |
|         <return type = "anything" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "rename">
 | |
|         Reindexes an item from an old key to a new key. If there was no such
 | |
|         item, does nothing. Returns 0 if successful, else -1.
 | |
|         <argument name = "old key" type = "string" />
 | |
|         <argument name = "new key" type = "string" />
 | |
|         <return type = "integer" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "freefn">
 | |
|         Set a free function for the specified hash table item. When the item is
 | |
|         destroyed, the free function, if any, is called on that item.
 | |
|         Use this when hash 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 = "key" type = "string" />
 | |
|         <argument name = "free_fn" type = "zhash_free_fn" callback = "1" />
 | |
|         <return type = "anything" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "size">
 | |
|         Return the number of keys/items in the hash table
 | |
|         <return type = "size" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "dup">
 | |
|         Make copy of hash table; if supplied table is null, returns null.
 | |
|         Does not copy items themselves. Rebuilds new table so may be slow on
 | |
|         very large tables. NOTE: only works with item values that are strings
 | |
|         since there's no other way to know how to duplicate the item value.
 | |
|         <return type = "zhash" fresh = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "keys">
 | |
|         Return keys for items in table
 | |
|         <return type = "zlist" fresh = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "first">
 | |
|         Simple iterator; returns first item in hash table, in no given order,
 | |
|         or NULL if the table is empty. This method is simpler to use than the
 | |
|         foreach() method, which is deprecated. To access the key for this item
 | |
|         use zhash_cursor(). NOTE: do NOT modify the table while iterating.
 | |
|         <return type = "anything" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "next">
 | |
|         Simple iterator; returns next item in hash table, in no given order,
 | |
|         or NULL if the last item was already returned. Use this together with
 | |
|         zhash_first() to process all items in a hash table. If you need the
 | |
|         items in sorted order, use zhash_keys() and then zlist_sort(). To
 | |
|         access the key for this item use zhash_cursor(). NOTE: do NOT modify
 | |
|         the table while iterating.
 | |
|         <return type = "anything" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "cursor">
 | |
|         After a successful first/next method, returns the key for the item that
 | |
|         was returned. This is a constant string that you may not modify or
 | |
|         deallocate, and which lasts as long as the item in the hash. After an
 | |
|         unsuccessful first/next, returns NULL.
 | |
|         <return type = "string" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "comment">
 | |
|         Add a comment to hash table before saving to disk. You can add as many
 | |
|         comment lines as you like. These comment lines are discarded when loading
 | |
|         the file. If you use a null format, all comments are deleted.
 | |
|         <argument name = "format" type = "format" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "pack">
 | |
|         Serialize hash table to a binary frame that can be sent in a message.
 | |
|         The packed format is compatible with the 'dictionary' type defined in
 | |
|         http://rfc.zeromq.org/spec:35/FILEMQ, and implemented by zproto:
 | |
| 
 | |
|            ; A list of name/value pairs
 | |
|            dictionary      = dict-count *( dict-name dict-value )
 | |
|            dict-count      = number-4
 | |
|            dict-value      = longstr
 | |
|            dict-name       = string
 | |
| 
 | |
|            ; Strings are always length + text contents
 | |
|            longstr         = number-4 *VCHAR
 | |
|            string          = number-1 *VCHAR
 | |
| 
 | |
|            ; Numbers are unsigned integers in network byte order
 | |
|            number-1        = 1OCTET
 | |
|            number-4        = 4OCTET
 | |
| 
 | |
|         Comments are not included in the packed data. Item values MUST be
 | |
|         strings.
 | |
|         <return type = "zframe" fresh = "1" />
 | |
|     </method>
 | |
| 
 | |
|     <constructor name = "unpack">
 | |
|         Unpack binary frame into a new hash table. Packed data must follow format
 | |
|         defined by zhash_pack. Hash table is set to autofree. An empty frame
 | |
|         unpacks to an empty hash table.
 | |
|         <argument name = "frame" type = "zframe" />
 | |
|     </constructor>
 | |
| 
 | |
|     <method name = "save">
 | |
|         Save hash table to a text file in name=value format. Hash values must be
 | |
|         printable strings; keys may not contain '=' character. Returns 0 if OK,
 | |
|         else -1 if a file error occurred.
 | |
|         <argument name = "filename" type = "string" />
 | |
|         <return type = "integer" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "load">
 | |
|         Load hash table from a text file in name=value format; hash table must
 | |
|         already exist. Hash values must printable strings; keys may not contain
 | |
|         '=' character. Returns 0 if OK, else -1 if a file was not readable.
 | |
|         <argument name = "filename" type = "string" />
 | |
|         <return type = "integer" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "refresh">
 | |
|         When a hash table was loaded from a file by zhash_load, this method will
 | |
|         reload the file if it has been modified since, and is "stable", i.e. not
 | |
|         still changing. Returns 0 if OK, -1 if there was an error reloading the 
 | |
|         file.
 | |
|         <return type = "integer" />
 | |
|     </method>
 | |
| 
 | |
|     <method name = "autofree">
 | |
|         Set hash for automatic value destruction
 | |
|     </method>
 | |
| </class>
 | |
| 
 |