]>
git.saurik.com Git - apple/xnu.git/blob - libkern/libkern/c++/OSDictionary.h
9bdba7ac2ff85b122aab985ba4fe404284575975
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
29 * Copyright (c) 1998-1999 Apple Computer, Inc. All rights reserved.
33 * OSDictionary.h created by rsulack on Wed 17-Sep-1997
34 * OSDictionary.h converted to C++ by gvdl on Fri 1998-10-30
37 #ifndef _IOKIT_IODICTIONARY_H
38 #define _IOKIT_IODICTIONARY_H
40 #include <libkern/c++/OSCollection.h>
50 * This header declares the OSDictionary collection class.
58 * OSDictionary provides an associative store using strings for keys.
61 * OSDictionary is a container for Libkern C++ objects
63 * @link //apple_ref/doc/class/OSMetaClassBase OSMetaClassBase@/link,
64 * in particular @link //apple_ref/doc/class/OSObject OSObject@/link).
65 * Storage and access are associative, based on string-valued keys
66 * (C string, @link //apple_ref/cpp/cl/OSString OSString@/link,
67 * or @link //apple_ref/cpp/cl/OSSymbol OSSymbol@/link).
68 * When adding an object to an OSDictionary, you provide a string identifier,
69 * which can then used to retrieve that object or remove it from the dictionary.
70 * Setting an object with a key that already has an associated object
71 * replaces the original object.
73 * You must generally cast retrieved objects from
74 * @link //apple_ref/cpp/cl/OSObject OSObject@/link
75 * to the desired class using
76 * <code>@link //apple_ref/cpp/macro/OSDynamicCast OSDynamicCast@/link</code>.
77 * This macro returns the object cast to the desired class,
78 * or <code>NULL</code> if the object isn't derived from that class.
80 * When iterating an OSDictionary using
81 * @link //apple_ref/doc/class/OSCollectionIterator OSCollectionIterator@/link,
82 * the objects returned from
83 * <code>@link //apple_ref/doc/function/OSCollectionIterator::getNextObject
84 * getNextObject@/link</code>
85 * are dictionary keys (not the object values for those keys).
86 * You can use the keys to retrieve their associated object values.
88 * As with all Libkern collection classes,
89 * OSDictionary retains keys and objects added to it,
90 * and releases keys and objects removed from it (or replaced).
91 * An OSDictionary also grows as necessary to accommodate new key/value pairs,
92 * <i>unlike</i> Core Foundation collections (it does not, however, shrink).
94 * <b>Note:</b> OSDictionary currently uses a linear search algorithm,
95 * and is not designed for high-performance access of many values.
96 * It is intended as a simple associative-storage mechanism only.
98 * <b>Use Restrictions</b>
100 * With very few exceptions in the I/O Kit, all Libkern-based C++
101 * classes, functions, and macros are <b>unsafe</b>
102 * to use in a primary interrupt context.
103 * Consult the I/O Kit documentation related to primary interrupts
104 * for more information.
106 * OSDictionary provides no concurrency protection;
107 * it's up to the usage context to provide any protection necessary.
108 * Some portions of the I/O Kit, such as
109 * @link //apple_ref/doc/class/IORegistryEntry IORegistryEntry@/link,
110 * handle synchronization via defined member functions for setting
113 class OSDictionary
: public OSCollection
115 OSDeclareDefaultStructors(OSDictionary
)
116 friend class OSSerialize
;
120 const OSSymbol
* key
;
121 const OSMetaClassBase
* value
;
123 dictEntry
* dictionary
;
125 unsigned int capacity
;
126 unsigned int capacityIncrement
;
128 struct ExpansionData
{ };
130 /* Reserved for future use. (Internal use only) */
131 ExpansionData
* reserved
;
133 // Member functions used by the OSCollectionIterator class.
134 virtual unsigned int iteratorSize() const;
135 virtual bool initIterator(void * iterator
) const;
136 virtual bool getNextObjectForIterator(void * iterator
, OSObject
** ret
) const;
141 * @function withCapacity
144 * Creates and initializes an empty OSDictionary.
146 * @param capacity The initial storage capacity of the new dictionary object.
149 * An empty instance of OSDictionary
150 * with a retain count of 1;
151 * <code>NULL</code> on failure.
154 * <code>capacity</code> must be nonzero.
155 * The new dictionary will grow as needed to accommodate more key/object pairs
156 * (<i>unlike</i> @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
157 * for which the initial capacity is a hard limit).
159 static OSDictionary
* withCapacity(unsigned int capacity
);
163 * @function withObjects
165 * @abstract Creates and initializes an OSDictionary
166 * populated with keys and objects provided.
168 * @param objects A C array of OSMetaClassBase-derived objects.
169 * @param keys A C array of OSSymbol keys
170 * for the corresponding objects in <code>objects</code>.
171 * @param count The number of keys and objects
172 * to be placed into the dictionary.
173 * @param capacity The initial storage capacity of the new dictionary object.
174 * If 0, <code>count</code> is used; otherwise this value
175 * must be greater than or equal to <code>count</code>.
178 * An instance of OSDictionary
179 * containing the key/object pairs provided,
180 * with a retain count of 1;
181 * <code>NULL</code> on failure.
184 * <code>objects</code> and <code>keys</code> must be non-<code>NULL</code>,
185 * and <code>count</code> must be nonzero.
186 * If <code>capacity</code> is nonzero,
187 * it must be greater than or equal to <code>count</code>.
188 * The new dictionary will grow as needed
189 * to accommodate more key/object pairs
191 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
192 * for which the initial capacity is a hard limit).
194 static OSDictionary
* withObjects(
195 const OSObject
* objects
[],
196 const OSSymbol
* keys
[],
198 unsigned int capacity
= 0);
201 * @function withObjects
204 * Creates and initializes an OSDictionary
205 * populated with keys and objects provided.
207 * @param objects A C array of OSMetaClassBase-derived objects.
208 * @param keys A C array of OSString keys for the corresponding objects
209 * in <code>objects</code>.
210 * @param count The number of keys and objects
211 * to be placed into the dictionary.
212 * @param capacity The initial storage capacity of the new dictionary object.
213 * If 0, <code>count</code> is used; otherwise this value
214 * must be greater than or equal to <code>count</code>.
217 * An instance of OSDictionary
218 * containing the key/object pairs provided,
219 * with a retain count of 1;
220 * <code>NULL</code> on failure.
223 * <code>objects</code> and <code>keys</code> must be non-<code>NULL</code>,
224 * and <code>count</code> must be nonzero.
225 * If <code>capacity</code> is nonzero, it must be greater than or equal to <code>count</code>.
226 * The new dictionary will grow as needed
227 * to accommodate more key/object pairs
229 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
230 * for which the initial capacity is a hard limit).
232 static OSDictionary
* withObjects(
233 const OSObject
* objects
[],
234 const OSString
* keys
[],
236 unsigned int capacity
= 0);
240 * @function withDictionary
243 * Creates and initializes an OSDictionary
244 * populated with the contents of another dictionary.
246 * @param dict A dictionary whose contents will be stored
247 * in the new instance.
248 * @param capacity The initial storage capacity of the new dictionary object.
249 * If 0, the capacity is set to the number of key/value pairs
250 * in <code>dict</code>;
251 * otherwise <code>capacity</code> must be greater than or equal to
252 * the number of key/value pairs in <code>dict</code>.
255 * An instance of OSDictionary
256 * containing the key/value pairs of <code>dict</code>,
257 * with a retain count of 1;
258 * <code>NULL</code> on failure.
261 * <code>dict</code> must be non-<code>NULL</code>.
262 * If <code>capacity</code> is nonzero, it must be greater than or equal to <code>count</code>.
263 * The new dictionary will grow as needed
264 * to accommodate more key/object pairs
266 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
267 * for which the initial capacity is a hard limit).
269 * The keys and objects in <code>dict</code> are retained for storage
270 * in the new OSDictionary,
273 static OSDictionary
* withDictionary(
274 const OSDictionary
* dict
,
275 unsigned int capacity
= 0);
279 * @function initWithCapacity
282 * Initializes a new instance of OSDictionary.
284 * @param capacity The initial storage capacity of the new dictionary object.
286 * <code>true</code> on success, <code>false</code> on failure.
289 * Not for general use. Use the static instance creation method
290 * <code>@link //apple_ref/cpp/clm/OSDictionary/withCapacity/staticOSDictionary*\/(unsignedint)
291 * withCapacity@/link</code>
294 * <code>capacity</code> must be nonzero.
295 * The new dictionary will grow as needed
296 * to accommodate more key/object pairs
298 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
299 * for which the initial capacity is a hard limit).
301 virtual bool initWithCapacity(unsigned int capacity
);
305 * @function initWithObjects
307 * @abstract Initializes a new OSDictionary with keys and objects provided.
309 * @param objects A C array of OSMetaClassBase-derived objects.
310 * @param keys A C array of OSSymbol keys
311 * for the corresponding objects in <code>objects</code>.
312 * @param count The number of keys and objects to be placed
313 * into the dictionary.
314 * @param capacity The initial storage capacity of the new dictionary object.
315 * If 0, <code>count</code> is used; otherwise this value
316 * must be greater than or equal to <code>count</code>.
319 * <code>true</code> on success, <code>false</code> on failure.
322 * Not for general use. Use the static instance creation method
324 * //apple_ref/cpp/clm/OSDictionary/withObjects/staticOSDictionary*\/(constOSObject*,constOSString*,unsignedint,unsignedint)
325 * withObjects@/link</code>
328 * <code>objects</code> and <code>keys</code> must be non-<code>NULL</code>,
329 * and <code>count</code> must be nonzero.
330 * If <code>capacity</code> is nonzero,
331 * it must be greater than or equal to <code>count</code>.
332 * The new dictionary will grow as neede
333 * to accommodate more key/object pairs
335 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
336 * for which the initial capacity is a hard limit).
338 virtual bool initWithObjects(
339 const OSObject
* objects
[],
340 const OSSymbol
* keys
[],
342 unsigned int capacity
= 0);
346 * @function initWithObjects
349 * Initializes a new OSDictionary with keys and objects provided.
351 * @param objects A C array of OSMetaClassBase-derived objects.
352 * @param keys A C array of OSString keys
353 * for the corresponding objects in <code>objects</code>.
354 * @param count The number of keys and objects
355 * to be placed into the dictionary.
356 * @param capacity The initial storage capacity of the new dictionary object.
357 * If 0, <code>count</code> is used; otherwise this value
358 * must be greater than or equal to <code>count</code>.
361 * <code>true</code> on success, <code>false</code> on failure.
364 * Not for general use. Use the static instance creation method
366 * //apple_ref/cpp/clm/OSDictionary/withObjects/staticOSDictionary*\/(constOSObject*,constOSString*,unsignedint,unsignedint)
367 * withObjects@/link</code>
370 * <code>objects</code> and <code>keys</code> must be non-<code>NULL</code>,
371 * and <code>count</code> must be nonzero.
372 * If <code>capacity</code> is nonzero, it must be greater than or equal to <code>count</code>.
373 * The new dictionary will grow as needed
374 * to accommodate more key/object pairs
376 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
377 * for which the initial capacity is a hard limit).
379 virtual bool initWithObjects(
380 const OSObject
* objects
[],
381 const OSString
* keys
[],
383 unsigned int capacity
= 0);
387 * @function initWithDictionary
390 * Initializes a new OSDictionary
391 * with the contents of another dictionary.
393 * @param dict A dictionary whose contents will be placed
394 * in the new instance.
395 * @param capacity The initial storage capacity of the new dictionary object.
396 * If 0, the capacity is set to the number of key/value pairs
397 * in <code>dict</code>;
398 * otherwise <code>capacity</code> must be greater than or equal to
399 * the number of key/value pairs in <code>dict</code>.
402 * <code>true</code> on success, <code>false</code> on failure.
405 * Not for general use. Use the static instance creation method
406 * <code>@link withDictionary withDictionary@/link</code> instead.
408 * <code>dict</code> must be non-<code>NULL</code>.
409 * If <code>capacity</code> is nonzero,
410 * it must be greater than or equal to <code>count</code>.
411 * The new dictionary will grow as needed
412 * to accommodate more key/object pairs
414 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
415 * for which the initial capacity is a hard limit).
417 * The keys and objects in <code>dict</code> are retained for storage
418 * in the new OSDictionary,
421 virtual bool initWithDictionary(
422 const OSDictionary
* dict
,
423 unsigned int capacity
= 0);
430 * Deallocates or releases any resources
431 * used by the OSDictionary instance.
434 * This function should not be called directly,
437 * //apple_ref/cpp/instm/OSObject/release/virtualvoid/()
438 * release@/link</code>
448 * Returns the current number of key/object pairs
449 * contained within the dictionary.
452 * The current number of key/object pairs
453 * contained within the dictionary.
455 virtual unsigned int getCount() const;
459 * @function getCapacity
462 * Returns the number of objects the dictionary can store without reallocating.
465 * The number objects the dictionary can store without reallocating.
468 * OSDictionary objects grow when full
469 * to accommodate additional key/object pairs.
472 * //apple_ref/cpp/instm/OSDictionary/getCapacityIncrement/virtualunsignedint/()
473 * getCapacityIncrement@/link</code>
476 * //apple_ref/cpp/instm/OSDictionary/ensureCapacity/virtualunsignedint/(unsignedint)
477 * ensureCapacity@/link</code>.
479 virtual unsigned int getCapacity() const;
483 * @function getCapacityIncrement
486 * Returns the storage increment of the dictionary.
489 * The storage increment of the dictionary.
492 * An OSDictionary allocates storage for key/object pairs in multiples
493 * of the capacity increment.
495 virtual unsigned int getCapacityIncrement() const;
499 * @function setCapacityIncrement
502 * Sets the storage increment of the dictionary.
505 * The new storage increment of the dictionary,
506 * which may be different from the number requested.
509 * An OSDictionary allocates storage for key/object pairs in multiples
510 * of the capacity increment.
511 * Calling this function does not immediately reallocate storage.
513 virtual unsigned int setCapacityIncrement(unsigned increment
);
517 * @function ensureCapacity
520 * Ensures the dictionary has enough space
521 * to store the requested number of key/object pairs.
523 * @param newCapacity The total number of key/object pairs the dictionary
524 * should be able to store.
527 * The new capacity of the dictionary,
528 * which may be different from the number requested
529 * (if smaller, reallocation of storage failed).
532 * This function immediately resizes the dictionary, if necessary,
533 * to accommodate at least <code>newCapacity</code> key/object pairs.
534 * If <code>newCapacity</code> is not greater than the current capacity,
535 * or if an allocation error occurs, the original capacity is returned.
537 * There is no way to reduce the capacity of an OSDictionary.
539 virtual unsigned int ensureCapacity(unsigned int newCapacity
);
543 * @function flushCollection
546 * Removes and releases all keys and objects within the dictionary.
549 * The dictionary's capacity (and therefore direct memory consumption)
550 * is not reduced by this function.
552 virtual void flushCollection();
556 * @function setObject
559 * Stores an object in the dictionary under a key.
561 * @param aKey An OSSymbol identifying the object
562 * placed within the dictionary.
563 * It is automatically retained.
564 * @param anObject The object to be stored in the dictionary.
565 * It is automatically retained.
568 * <code>true</code> if the addition was successful,
569 * <code>false</code> otherwise.
572 * An object already stored under <code>aKey</code> is released.
574 virtual bool setObject(
575 const OSSymbol
* aKey
,
576 const OSMetaClassBase
* anObject
);
580 * @function setObject
582 * @abstract Stores an object in the dictionary under a key.
584 * @param aKey An OSString identifying the object
585 * placed within the dictionary.
586 * @param anObject The object to be stored in the dictionary.
587 * It is automatically retained.
590 * <code>true</code> if the addition was successful,
591 * <code>false</code> otherwise.
594 * An OSSymbol for <code>aKey</code> is created internally.
595 * An object already stored under <code>aKey</code> is released.
597 virtual bool setObject(
598 const OSString
* aKey
,
599 const OSMetaClassBase
* anObject
);
603 * @function setObject
606 * Stores an object in the dictionary under a key.
608 * @param aKey A C string identifying the object
609 * placed within the dictionary.
610 * @param anObject The object to be stored in the dictionary.
611 * It is automatically retained.
614 * <code>true</code> if the addition was successful,
615 * <code>false</code> otherwise.
618 * An OSSymbol for <code>aKey</code> is created internally.
619 * An object already stored under <code>aKey</code> is released.
621 virtual bool setObject(
623 const OSMetaClassBase
* anObject
);
627 * @function removeObject
630 * Removes a key/object pair from the dictionary.
632 * @param aKey An OSSymbol identifying the object
633 * to be removed from the dictionary.
636 * The removed key (not necessarily <code>aKey</code> itself)
637 * and object are automatically released.
639 virtual void removeObject(const OSSymbol
* aKey
);
643 * @function removeObject
646 * Removes a key/object pair from the dictionary.
648 * @param aKey A OSString identifying the object
649 * to be removed from the dictionary.
652 * The removed key (not necessarily <code>aKey</code> itself)
653 * and object are automatically released.
655 virtual void removeObject(const OSString
* aKey
);
659 * @function removeObject
662 * Removes a key/object pair from the dictionary.
664 * @param aKey A C string identifying the object
665 * to be removed from the dictionary.
668 * The removed key (internally an OSSymbol)
669 * and object are automatically released.
671 virtual void removeObject(const char * aKey
);
678 * Merges the contents of a dictionary into the receiver.
680 * @param aDictionary The dictionary whose contents
681 * are to be merged with the receiver.
683 * <code>true</code> if the merge succeeds, <code>false</code> otherwise.
686 * If there are keys in <code>aDictionary</code> that match keys
687 * in the receiving dictionary,
688 * then the objects in the receiver are replaced
689 * by those from <code>aDictionary</code>,
690 * and the replaced objects are released.
692 virtual bool merge(const OSDictionary
* aDictionary
);
696 * @function getObject
699 * Returns the object stored under a given key.
701 * @param aKey An OSSymbol key identifying the object
702 * to be returned to the caller.
705 * The object stored under <code>aKey</code>,
706 * or <code>NULL</code> if the key does not exist in the dictionary.
709 * The returned object will be released if removed from the dictionary;
710 * if you plan to store the reference, you should call
712 * //apple_ref/cpp/instm/OSObject/retain/virtualvoid/()
713 * retain@/link</code>
716 virtual OSObject
* getObject(const OSSymbol
* aKey
) const;
720 * @function getObject
722 * @abstract Returns the object stored under a given key.
724 * @param aKey An OSString key identifying the object
725 * to be returned to caller.
728 * The object stored under <code>aKey</code>,
729 * or <code>NULL</code> if the key does not exist in the dictionary.
732 * The returned object will be released if removed from the dictionary;
733 * if you plan to store the reference, you should call
735 * //apple_ref/cpp/instm/OSObject/retain/virtualvoid/()
736 * retain@/link</code>
739 virtual OSObject
* getObject(const OSString
* aKey
) const;
743 * @function getObject
746 * Returns the object stored under a given key.
748 * @param aKey A C string key identifying the object
749 * to be returned to caller.
752 * The object stored under <code>aKey</code>,
753 * or <code>NULL</code> if the key does not exist in the dictionary.
756 * The returned object will be released if removed from the dictionary;
757 * if you plan to store the reference, you should call
759 * //apple_ref/cpp/instm/OSObject/retain/virtualvoid/()
760 * retain@/link</code>
763 virtual OSObject
* getObject(const char * aKey
) const;
767 * @function isEqualTo
769 * @abstract Tests the equality of two OSDictionary objects
770 * over a subset of keys.
772 * @param aDictionary The dictionary to be compared against the receiver.
773 * @param keys An OSArray or OSDictionary containing the keys
774 * (as @link //apple_ref/cpp/cl/OSString OSStrings@/link or
775 * @link //apple_ref/cpp/cl/OSSymbol OSSymbols@/link)
776 * describing the intersection for the comparison.
779 * <code>true</code> if the intersections
780 * of the two dictionaries are equal.
783 * Two OSDictionary objects are considered equal by this function
784 * if both have objects stored for all keys provided,
785 * and if the objects stored in each under
786 * a given key compare as equal using
788 * //apple_ref/cpp/instm/OSMetaClassBase/isEqualTo/virtualbool/(constOSMetaClassBase*)
789 * isEqualTo@/link</code>.
791 virtual bool isEqualTo(
792 const OSDictionary
* aDictionary
,
793 const OSCollection
* keys
) const;
797 * @function isEqualTo
799 * @abstract Tests the equality of two OSDictionary objects.
801 * @param aDictionary The dictionary to be compared against the receiver.
804 * <code>true</code> if the dictionaries are equal,
805 * <code>false</code> if not.
808 * Two OSDictionary objects are considered equal if they have same count,
809 * the same keys, and if the objects stored in each under
810 * a given key compare as equal using
812 * //apple_ref/cpp/instm/OSMetaClassBase/isEqualTo/virtualbool/(constOSMetaClassBase*)
813 * isEqualTo@/link</code>.
815 virtual bool isEqualTo(const OSDictionary
* aDictionary
) const;
819 * @function isEqualTo
822 * Tests the equality of an OSDictionary to an arbitrary object.
824 * @param anObject An object to be compared against the receiver.
827 * <code>true</code> if the objects are equal.
830 * An OSDictionary is considered equal to another object
831 * if that object is derived from OSDictionary
832 * and contains the same or equivalent objects.
834 virtual bool isEqualTo(const OSMetaClassBase
* anObject
) const;
838 * @function serialize
841 * Archives the receiver into the provided
842 * @link //apple_ref/doc/class/OSSerialize OSSerialize@/link object.
844 * @param serializer The OSSerialize object.
847 * <code>true</code> if serialization succeeds, <code>false</code> if not.
849 virtual bool serialize(OSSerialize
* serializer
) const;
853 * @function setOptions
856 * Recursively sets option bits in the dictionary
857 * and all child collections.
859 * @param options A bitfield whose values turn the options on (1) or off (0).
860 * @param mask A mask indicating which bits
861 * in <code>options</code> to change.
862 * Pass 0 to get the whole current options bitfield
863 * without changing any settings.
864 * @param context Unused.
867 * The options bitfield as it was before the set operation.
870 * Kernel extensions should not call this function.
872 * Child collections' options are changed only if the receiving dictionary's
873 * options actually change.
875 virtual unsigned setOptions(
882 * @function copyCollection
885 * Creates a deep copy of the dictionary
886 * and its child collections.
888 * @param cycleDict A dictionary of all of the collections
889 * that have been copied so far,
890 * which is used to track circular references.
891 * To start the copy at the top level,
892 * pass <code>NULL</code>.
895 * The newly copied dictionary, with a retain count of 1,
896 * or <code>NULL</code> if there is insufficient memory to do the copy.
899 * The receiving dictionary, and any collections it contains, recursively,
901 * Objects that are not derived from OSCollection are retained
902 * rather than copied.
904 OSCollection
* copyCollection(OSDictionary
* cycleDict
= 0);
907 OSMetaClassDeclareReservedUnused(OSDictionary
, 0);
908 OSMetaClassDeclareReservedUnused(OSDictionary
, 1);
909 OSMetaClassDeclareReservedUnused(OSDictionary
, 2);
910 OSMetaClassDeclareReservedUnused(OSDictionary
, 3);
911 OSMetaClassDeclareReservedUnused(OSDictionary
, 4);
912 OSMetaClassDeclareReservedUnused(OSDictionary
, 5);
913 OSMetaClassDeclareReservedUnused(OSDictionary
, 6);
914 OSMetaClassDeclareReservedUnused(OSDictionary
, 7);
917 #endif /* !_IOKIT_IODICTIONARY_H */