| Derived from | |
| Framework | CoreFoundation/CoreFoundation.h |
| Companion guide | |
| Declared in | CFBag.h |
CFMutableBag manages dynamic bags. The basic interface for managing bags is provided by CFBag. CFMutableBag adds functions to modify the contents of a bag.
You create a mutable bag object using either the CFBagCreateMutable or CFBagCreateMutableCopy function.
CFMutableBag provides several functions for adding and removing values from a bag. The CFBagAddValue function adds a value to a bag and CFBagRemoveValue removes values from a bag.
Adds a value to a mutable bag.
void CFBagAddValue ( CFMutableBagRef theBag, const void *value );
The bag to which value is added.
A CFType object or a pointer value to add to theBag (or the value itself, if it fits into the size of a pointer).
The value parameter is retained by theBag using the retain callback provided when theBag was created. If value is not of the type expected by the retain callback, the behavior is undefined. If value already exists in the collection, it is simply retained again—no memory is allocated for the added value. Use a CFSet object if you don’t want duplicate values in your collection.
CFBag.h
Creates a new empty mutable bag.
CFMutableBagRef CFBagCreateMutable ( CFAllocatorRef allocator, CFIndex capacity, const CFBagCallBacks *callBacks );
The allocator object to use to allocate memory for the new bag and its storage for values. Pass NULL or kCFAllocatorDefault to use the current default allocator.
The maximum number of values that can be contained by the new bag. The bag starts empty and can grow to this number of values (and it can have less). If this parameter is 0, the bag’s maximum capacity is not limited. This value must not be negative.
A pointer to a CFBagCallBacks structure initialized with the callbacks to use to retain, release, describe, and compare values in the bag. A copy of the contents of the callbacks structure is made, so that a pointer to a structure on the stack can be passed in or can be reused for multiple collection creations. This parameter may be NULL, which is treated as if a valid structure of version 0 with all fields NULL had been passed in.
If any of the fields are not valid pointers to functions of the correct type, or this parameter is not a valid pointer to a CFBagCallBacks structure, the behavior is undefined. If any value put into the collection is not one understood by one of the callback functions, the behavior when that callback function is used is undefined.
If the collection contains only CFType objects, then pass kCFTypeBagCallBacks as this parameter to use the default callback functions.
A new mutable bag, or NULL if there was a problem creating the object. Ownership follows the Create Rule.
This function creates an new empty mutable bag to which you can add values using the CFBagAddValue function. The capacity parameter specifies the maximum number of values that the CFBag object can contain. If it is 0, then there is no limit to the number of values that can be added (aside from constraints such as available memory).
CFBag.h
Creates a new mutable bag with the values from another bag.
CFMutableBagRef CFBagCreateMutableCopy ( CFAllocatorRef allocator, CFIndex capacity, CFBagRef theBag );
The allocator to use to allocate memory for the new bag and its storage for values. Pass NULL or kCFAllocatorDefault to use the current default allocator.
The maximum number of values that can be contained by the new bag. The bag starts with the same count as theBag, and can grow to this number of values (and it can have less). If this value is 0, the bag’s maximum capacity is not limited. This value must be greater than or equal to the count of theBag, and must not be negative.
The bag to copy. The pointer values from theBag are copied into the new bag. However, the values are also retained by the new bag. The count of the new bag is the same as the count of theBag. The new bag uses the same callbacks as theBag.
A new mutable bag that contains the same values as theBag. Ownership follows the Create Rule.
CFBag.h
Removes all values from a mutable bag.
void CFBagRemoveAllValues ( CFMutableBagRef theBag );
The bag from which all of the values are to be removed.
CFBag.h
Removes a value from a mutable bag.
void CFBagRemoveValue ( CFMutableBagRef theBag, const void *value );
The bag from which value is to be removed.
The value to be removed from the collection.
CFBag.h
Replaces a value in a mutable bag.
void CFBagReplaceValue ( CFMutableBagRef theBag, const void *value );
The bag from which value is to be replaced.
The value to be replaced in the collection. If this value does not already exist in the collection, the function does nothing. You may pass the value itself instead of a pointer if it is pointer-size or less. The equal callback provided when theBag was created is used to compare. If the equal callback was NULL, pointer equality (in C, ==) is used. If value, or any other value in theBag, is not understood by the equal callback, the behavior is undefined.
Depending on the implementation of the equal callback specified when creating theBag, the object that is replaced by value may not have the same pointer equality.
CFBag.h
Sets a value in a mutable bag.
void CFBagSetValue ( CFMutableBagRef theBag, const void *value );
The bag in which value is to be set.
The value to be set in the collection. If this value already exists in theBag, it is replaced. You may pass the value itself instead of a pointer to it if the value is pointer-size or less. If theBag is fixed-size and the value is beyond its capacity, the behavior is undefined.
Depending on the implementation of the equal callback specified when creating theBag, the value that is replaced by value may not have the same pointer equality.
CFBag.hA reference to a mutable bag object.
typedef struct __CFBag *CFMutableBagRef;
CFBag.h
Last updated: 2005-12-06