Up
Authors
- Richard Frith-Macdonald
-
NSThread* GSCurrentThread();
Description forthcoming.
NSMutableDictionary* GSCurrentThreadDictionary();
Description forthcoming.
NSString* GSDebugFunctionMsg(const char* func, const char* file, int line, NSString* fmt);
Description forthcoming.
NSString* GSDebugMethodMsg(id obj, SEL sel, const char* file, int line, NSString* fmt);
Description forthcoming.
BOOL GSDebugSet(NSString* level);
Description forthcoming.
NSString* GSEncodingName(NSStringEncoding availableEncodingValue);
Description forthcoming.
NSString* GetEncodingName(NSStringEncoding availableEncodingValue);
Description forthcoming.
void NSDecimalFromComponents(NSDecimal* result, unsigned long long int mantissa, short int exponent, BOOL negative);
Description forthcoming.
NSArray* NSStandardLibraryPaths();
Description forthcoming.
void GSIArrayAddItem(GSIArray array, GSIArrayItem item);
Description forthcoming.
void GSIArrayAddItemNoRetain(GSIArray array, GSIArrayItem item);
Description forthcoming.
unsigned int GSIArrayCapacity(GSIArray array);
Description forthcoming.
void GSIArrayCheckSort(GSIArray array, NSComparisonResult(*) sorter);
Description forthcoming.
void GSIArrayClear(GSIArray array);
Description forthcoming.
GSIArray GSIArrayCopyWithZone(GSIArray array, NSZone* zone);
Description forthcoming.
unsigned int GSIArrayCount(GSIArray array);
Description forthcoming.
void GSIArrayEmpty(GSIArray array);
Description forthcoming.
void GSIArrayGrow(GSIArray array);
Description forthcoming.
void GSIArrayGrowTo(GSIArray array, unsigned int next);
Description forthcoming.
GSIArray GSIArrayInitWithZoneAndCapacity(GSIArray array, NSZone* zone, size_t capacity);
Description forthcoming.
GSIArray GSIArrayInitWithZoneAndStaticCapacity(GSIArray array, NSZone* zone, size_t capacity, GSIArrayItem* buffer);
Description forthcoming.
void GSIArrayInsertItem(GSIArray array, GSIArrayItem item, unsigned int index);
Description forthcoming.
void GSIArrayInsertItemNoRetain(GSIArray array, GSIArrayItem item, unsigned int index);
Description forthcoming.
void GSIArrayInsertSorted(GSIArray array, GSIArrayItem item, NSComparisonResult(*) sorter);
Description forthcoming.
void GSIArrayInsertSortedNoRetain(GSIArray array, GSIArrayItem item, NSComparisonResult(*) sorter);
Description forthcoming.
unsigned int GSIArrayInsertionPosition(GSIArray array, GSIArrayItem item, NSComparisonResult(*) sorter);
Description forthcoming.
GSIArrayItem GSIArrayItemAtIndex(GSIArray array, unsigned int index);
Description forthcoming.
GSIArrayItem* GSIArrayItems(GSIArray array);
Description forthcoming.
GSIArrayItem GSIArrayLastItem(GSIArray array);
Description forthcoming.
void GSIArrayRemoveAllItems(GSIArray array);
Description forthcoming.
void GSIArrayRemoveItemAtIndex(GSIArray array, unsigned int index);
Description forthcoming.
void GSIArrayRemoveItemAtIndexNoRelease(GSIArray array, unsigned int index);
Description forthcoming.
void GSIArrayRemoveItemsFromIndex(GSIArray array, unsigned int index);
Description forthcoming.
void GSIArrayRemoveLastItem(GSIArray array);
Description forthcoming.
void GSIArraySetItemAtIndex(GSIArray array, GSIArrayItem item, unsigned int index);
Description forthcoming.
GSIMapNode GSIMapAddKey(GSIMapTable map, GSIMapKey key);
Description forthcoming.
GSIMapNode GSIMapAddKeyNoRetain(GSIMapTable map, GSIMapKey key);
Description forthcoming.
void GSIMapAddNodeToBucket(GSIMapBucket bucket, GSIMapNode node);
Description forthcoming.
void GSIMapAddNodeToMap(GSIMapTable map, GSIMapNode node);
Description forthcoming.
GSIMapNode GSIMapAddPair(GSIMapTable map, GSIMapKey key, GSIMapVal value);
Description forthcoming.
GSIMapNode GSIMapAddPairNoRetain(GSIMapTable map, GSIMapKey key, GSIMapVal value);
Description forthcoming.
GSIMapBucket GSIMapBucketForKey(GSIMapTable map, GSIMapKey key);
Description forthcoming.
void GSIMapCleanMap(GSIMapTable map);
Description forthcoming.
void GSIMapEmptyMap(GSIMapTable map);
Description forthcoming.
void GSIMapEndEnumerator(GSIMapEnumerator enumerator);
Tidies up after map enumeration... effectively
destroys the enumerator.
GSIMapBucket GSIMapEnumeratorBucket(GSIMapEnumerator enumerator);
Returns the bucket from which the next node in the
enumeration will come. Once the next node has
been enumerated, you can use the bucket and node to
remove the node from the map using the
GSIMapRemoveNodeFromMap()
function.
GSIMapEnumerator_t GSIMapEnumeratorForMap(GSIMapTable map);
Enumerating
Create an return an enumerator
for the specified map.
You must call
GSIMapEndEnumerator()
when you have finished with the enumerator.
WARNING You should not alter a
map while an enumeration is in progress. The
results of doing so are reasonably unpredictable.
Remember, DON'T MESS WITH A MAP WHILE YOU'RE
ENUMERATING IT.
GSIMapNode GSIMapEnumeratorNextNode(GSIMapEnumerator enumerator);
Returns the next node in the map, or a nul pointer if
at the end.
void GSIMapFreeNode(GSIMapTable map, GSIMapNode node);
Description forthcoming.
void GSIMapInitWithZoneAndCapacity(GSIMapTable map, NSZone* zone, size_t capacity);
Description forthcoming.
void GSIMapLinkNodeIntoBucket(GSIMapBucket bucket, GSIMapNode node);
Description forthcoming.
void GSIMapMoreNodes(GSIMapTable map, unsigned int required);
Description forthcoming.
GSIMapNode GSIMapNewNode(GSIMapTable map, GSIMapKey key);
Description forthcoming.
GSIMapNode GSIMapNodeForKey(GSIMapTable map, GSIMapKey key);
Description forthcoming.
GSIMapNode GSIMapNodeForKeyInBucket(GSIMapTable map, GSIMapBucket bucket, GSIMapKey key);
Description forthcoming.
GSIMapNode GSIMapNodeForSimpleKey(GSIMapTable map, GSIMapKey key);
Description forthcoming.
GSIMapBucket GSIMapPickBucket(unsigned int hash, GSIMapBucket buckets, size_t bucketCount);
Description forthcoming.
void GSIMapRemangleBuckets(GSIMapTable map, GSIMapBucket old_buckets, size_t old_bucketCount, GSIMapBucket new_buckets, size_t new_bucketCount);
Description forthcoming.
void GSIMapRemoveKey(GSIMapTable map, GSIMapKey key);
Description forthcoming.
void GSIMapRemoveNodeFromBucket(GSIMapBucket bucket, GSIMapNode node);
Description forthcoming.
void GSIMapRemoveNodeFromMap(GSIMapTable map, GSIMapBucket bkt, GSIMapNode node);
Description forthcoming.
void GSIMapResize(GSIMapTable map, size_t new_capacity);
Description forthcoming.
void GSIMapRightSizeMap(GSIMapTable map, size_t capacity);
Description forthcoming.
void GSIMapUnlinkNodeFromBucket(GSIMapBucket bucket, GSIMapNode node);
Description forthcoming.
void GSAddMethodList(Class class, GSMethodList list, BOOL toInstanceMethods);
Add the method list to the class
as the first list to be searched during
method invocation for the given class.
Depending on toInstanceMethods, this
list will be added as an instance or a
class method list. If the
list is in use by another class
, behavior is undefined. Create a new list
with
GSAllocMethodList()
or use
GSRemoveMethodList()
to remove a list before inserting it in a
class.
After method list manipulation you should
call
GSFlushMethodCacheForClass()
for the changes to take effect.
This function should currently (June 2004) be
considered WIP. Please follow potential changes
(Name, parameters,...) closely until it stabilizes.
GSMethodList GSAllocMethodList(unsigned int count);
Returns a pointer to objc_malloc'ed memory large
enough to hold a struct objc_method_list with
'count' number of struct objc_method entries. The
memory returned is initialized with 0, including the
method count and next method list fields.
This function is intended for use in conjunction with
GSAppendMethodToList()
to fill the memory and
GSAddMethodList()
to activate the method list.
After method list manipulation you should call
GSFlushMethodCacheForClass()
for the changes to take effect.
WARNING: Manipulating the runtime structures
can be hazardous!
This function should currently (June 2004) be
considered WIP. Please follow potential changes
(Name, parameters,...) closely until it stabilizes.
void GSAllocateMutexAt(objc_mutex_t* request);
Allocate a new objc_mutex_t and store it in the
location pointed to by request. A mutex
is only created if the value pointed to by
request is NULL. This function is thread
safe in the sense that multiple threads my call this
function with the same value of request
and only one will actually set the mutex. It is the users
responsibility that no one else attempts to
set the mutex pointed to. This function should be used
with objc_mutex_t variables which were statically
initialized to NULL like:
void function (void)
{
static objc_mutex_t my_lock = NULL;
if (my_lock == NULL)
GSAllocateMutexAt(
Up