Artifact 12bb9cf14f4a74e10dfdf0a678a14a9a638c714c25cc21aaf6887dddd9111fba:
- File
src/OFDictionary.h
— part of check-in
[a29d403286]
at
2009-05-23 16:50:44
on branch trunk
— A few renames in OFArray, OFDataArray and OFDictionary.
OFArray:
* Rename - object: to - objectAtIndex:.OFDataArray:
* Rename - item: to - itemAtIndex:.OFDictionary:
* Rename - get: to - objectForKey:.
* Rename - set:to: to - setObject:forKey:.
* Rename - remove: to - removeObjectForKey:. (user: js, size: 3915) [annotate] [blame] [check-ins using]
/* * Copyright (c) 2008 - 2009 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of libobjfw. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #include <stdarg.h> #import "OFObject.h" #import "OFList.h" #import "OFArray.h" /** * The OFDictionary class provides a class for using hash tables. */ @interface OFDictionary: OFObject { OFList **data; size_t size; } /** * Creates a new OFDictionary, defaulting to a 12 bit hash. * * \return A new autoreleased OFDictionary */ + dictionary; /** * Creates a new OFDictionary with a hash of N bits. * * \param bits The size of the hash to use * \return A new autoreleased OFDictionary */ + dictionaryWithHashSize: (int)hashsize; /** * Creates a new OFDictionary with the specified key and object. * * \param key The key * \param obj The object * \return A new autoreleased OFDictionary */ + dictionaryWithKey: (OFObject <OFCopying>*)key andObject: (OFObject*)obj; /** * Creates a new OFDictionary with the specified keys and objects. * * \param keys An array of keys * \param objs An array of objects * \return A new autoreleased OFDictionary */ + dictionaryWithKeys: (OFArray*)keys andObjects: (OFArray*)objs; /** * Creates a new OFDictionary with the specified keys objects. * * \param first The first key * \return A new autoreleased OFDictionary */ + dictionaryWithKeysAndObjects: (OFObject <OFCopying>*)first, ...; /** * Initializes an already allocated OFDictionary, defaulting to a 12 bit hash. * * \return An initialized OFDictionary */ - init; /** * Initializes an already allocated OFDictionary with a hash of N bits. * * \param bits The size of the hash to use * \return An initialized OFDictionary */ - initWithHashSize: (int)hashsize; /** * Initializes an already allocated OFDictionary with the specified key and * object. * * \param key The key * \param obj The object * \return A new initialized OFDictionary */ - initWithKey: (OFObject <OFCopying>*)key andObject: (OFObject*)obj; /** * Initializes an already allocated OFDictionary with the specified keys and * objects. * * \param keys An array of keys * \param objs An array of objects * \return A new initialized OFDictionary */ - initWithKeys: (OFArray*)keys andObjects: (OFArray*)objs; /** * Initializes an already allocated OFDictionary with the specified keys and * objects. * * \param first The first key * \return A new initialized OFDictionary */ - initWithKeysAndObjects: (OFObject <OFCopying>*)first, ...; /** * Initializes an already allocated OFDictionary with the specified key and * va_list. * * \param first The first key * \return A new initialized OFDictionary */ - initWithKey: (OFObject <OFCopying>*)first andArgList: (va_list)args; /** * \return The average number of items in a used bucket. Buckets that are * completely empty are not in the calculation. If this value is >= 2.0, * you should resize the dictionary, in most cases even earlier! */ - (float)averageItemsPerBucket; /** * \param key The key whose object should be returned * \return The object for the given key or nil if the key was not found */ - (id)objectForKey: (OFObject*)key; /** * Sets a key to an object. A key can be any object. * * \param key The key to set * \param obj The object to set the key to */ - setObject: (OFObject*)obj forKey: (OFObject <OFCopying>*)key; /** * Remove the object with the given key from the dictionary. * * \param key The key whose object should be removed */ - removeObjectForKey: (OFObject*)key; /** * Changes the hash size of the dictionary. * * \param hashsize The new hash size for the dictionary */ - changeHashSize: (int)hashsize; @end #import "OFIterator.h" #import "OFMutableDictionary.h"