summaryrefslogtreecommitdiff
path: root/packages/cocoaint/src/foundation/NSMapTable.inc
blob: 45b8e4b0156ff79f435e7a7cc69cba267a1fd61a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
{ Parsed from Foundation.framework NSMapTable.h }


{ Types from NSMapTable }
{$ifdef TYPES}

{$endif}


{$ifdef TYPES}
type
  NSMapTablePtr = ^NSMapTable;
{$endif}

{$if  not (defined(__FOUNDATION_NSMAPTABLE__))}
{$ifdef TYPES}
const
  __FOUNDATION_NSMAPTABLE__ = 1;

const
  NSMapTableStrongMemory = 0 { available in 10_5, 6_0 };
  {$if (defined(TARGET_OS_MAC) and not (defined(TARGET_OS_EMBEDDED) or defined(TARGET_OS_IPHONE))) or defined(TARGET_OS_WIN32)}
  NSMapTableZeroingWeakMemory = NSPointerFunctionsZeroingWeakMemory deprecated 'in 10_5, 10_8';
  {$endif}
  NSMapTableCopyIn = NSPointerFunctionsCopyIn { available in 10_5, 6_0 };
  NSMapTableObjectPointerPersonality = NSPointerFunctionsObjectPointerPersonality { available in 10_5, 6_0 };
  NSMapTableWeakMemory = NSPointerFunctionsWeakMemory { available in 10_8, 6_0 };

type
  NSMapTableOptions = NSUInteger;
  NSMapTableOptionsPtr = ^NSMapTableOptions;
{$endif}

{$ifdef CLASSES}

type
  NSMapTable = objcclass external (NSObject, NSCopyingProtocol, NSCodingProtocol, NSFastEnumerationProtocol)
  public
    function initWithKeyOptions_valueOptions_capacity (keyOptions: NSPointerFunctionsOptions; valueOptions: NSPointerFunctionsOptions; initialCapacity: NSUInteger): instancetype; message 'initWithKeyOptions:valueOptions:capacity:'; { NS_DESIGNATED_INITIALIZER }
    function initWithKeyPointerFunctions_valuePointerFunctions_capacity (keyFunctions: NSPointerFunctions; valueFunctions: NSPointerFunctions; initialCapacity: NSUInteger): instancetype; message 'initWithKeyPointerFunctions:valuePointerFunctions:capacity:'; { NS_DESIGNATED_INITIALIZER }
    class function mapTableWithKeyOptions_valueOptions (keyOptions: NSPointerFunctionsOptions; valueOptions: NSPointerFunctionsOptions): NSMapTable; message 'mapTableWithKeyOptions:valueOptions:';
    {$if (defined(TARGET_OS_MAC) and not (defined(TARGET_OS_EMBEDDED) or defined(TARGET_OS_IPHONE))) or defined(TARGET_OS_WIN32)}
    class function mapTableWithStrongToStrongObjects: id; message 'mapTableWithStrongToStrongObjects'; deprecated 'in 10_5, 10_8';
    class function mapTableWithWeakToStrongObjects: id; message 'mapTableWithWeakToStrongObjects'; deprecated 'in 10_5, 10_8';
    class function mapTableWithStrongToWeakObjects: id; message 'mapTableWithStrongToWeakObjects'; deprecated 'in 10_5, 10_8';
    class function mapTableWithWeakToWeakObjects: id; message 'mapTableWithWeakToWeakObjects'; deprecated 'in 10_5, 10_8';
    {$endif}
    class function strongToStrongObjectsMapTable: NSMapTable; message 'strongToStrongObjectsMapTable'; { available in 10_8, 6_0 }
    class function weakToStrongObjectsMapTable: NSMapTable; message 'weakToStrongObjectsMapTable'; { available in 10_8, 6_0 }
    class function strongToWeakObjectsMapTable: NSMapTable; message 'strongToWeakObjectsMapTable'; { available in 10_8, 6_0 }
    class function weakToWeakObjectsMapTable: NSMapTable; message 'weakToWeakObjectsMapTable'; { available in 10_8, 6_0 }
    function keyPointerFunctions: NSPointerFunctions; message 'keyPointerFunctions';
    function valuePointerFunctions: NSPointerFunctions; message 'valuePointerFunctions';
    function objectForKey (aKey: id): id; message 'objectForKey:';
    procedure removeObjectForKey (aKey: id); message 'removeObjectForKey:';
    procedure setObject_forKey (anObject: id; aKey: id); message 'setObject:forKey:';
    function count: NSUInteger; message 'count';
    function keyEnumerator: NSEnumerator; message 'keyEnumerator';
    function objectEnumerator: NSEnumerator; message 'objectEnumerator';
    procedure removeAllObjects; message 'removeAllObjects';
    function dictionaryRepresentation: NSDictionary; message 'dictionaryRepresentation';

    { Adopted protocols }
    function copyWithZone (zone: NSZonePtr): id; message 'copyWithZone:';
    function countByEnumeratingWithState_objects_count (state: NSFastEnumerationStatePtr; buffer: idPtr { variable size array of id }; len: NSUInteger): NSUInteger; message 'countByEnumeratingWithState:objects:count:';
    procedure encodeWithCoder (aCoder: NSCoder); message 'encodeWithCoder:';
    function initWithCoder (aDecoder: NSCoder): id; message 'initWithCoder:';
  end;
{$endif}

{$if (defined(TARGET_OS_MAC) and not (defined(TARGET_OS_EMBEDDED) or defined(TARGET_OS_IPHONE))) or defined(TARGET_OS_WIN32)}
{$ifdef TYPES}
type
  NSMapEnumerator = record
    _pi: NSUInteger;
    _si: NSUInteger;
    _bs: pointer;
  end;
type
  NSMapEnumeratorPtr = ^NSMapEnumerator;
{$endif}

{$ifdef FUNCTIONS}
procedure NSFreeMapTable(table: NSMapTable); cdecl; external;
procedure NSResetMapTable(table: NSMapTable); cdecl; external;
function NSCompareMapTables(table1: NSMapTable; table2: NSMapTable): ObjCBOOL; cdecl; external;
function NSCopyMapTableWithZone(table: NSMapTable; zone: NSZonePtr): NSMapTable; cdecl; external;
function NSMapMember(table: NSMapTable; key: pointer; originalKey: pointer; value: pointer): ObjCBOOL; cdecl; external;
function NSMapGet(table: NSMapTable; key: pointer): pointer; cdecl; external;
procedure NSMapInsert(table: NSMapTable; key: pointer; value: pointer); cdecl; external;
procedure NSMapInsertKnownAbsent(table: NSMapTable; key: pointer; value: pointer); cdecl; external;
function NSMapInsertIfAbsent(table: NSMapTable; key: pointer; value: pointer): pointer; cdecl; external;
procedure NSMapRemove(table: NSMapTable; key: pointer); cdecl; external;
function NSEnumerateMapTable(table: NSMapTable): NSMapEnumerator; cdecl; external;
function NSNextMapEnumeratorPair(enumerator: NSMapEnumeratorPtr; key: pointer; value: pointer): ObjCBOOL; cdecl; external;
procedure NSEndMapTableEnumeration(enumerator: NSMapEnumeratorPtr); cdecl; external;
function NSCountMapTable(table: NSMapTable): NSUInteger; cdecl; external;
function NSStringFromMapTable(table: NSMapTable): NSString; cdecl; external;
function NSAllMapTableKeys(table: NSMapTable): NSArray; cdecl; external;
function NSAllMapTableValues(table: NSMapTable): NSArray; cdecl; external;
{$endif}

{$ifdef TYPES}
type
  NSMapTableKeyCallBacks = record
    hash: function (table: NSMapTable; param2: pointer): NSUInteger; cdecl;
    isEqual: function (table: NSMapTable; param2: pointer; param3: pointer): ObjCBOOL; cdecl;
    retain: procedure (table: NSMapTable; param2: pointer); cdecl;
    release: procedure (table: NSMapTable; param2: pointer); cdecl;
    describe: function (table: NSMapTable; param2: pointer): NSString; cdecl;
    notAKeyMarker: pointer;
  end;
type
  NSMapTableKeyCallBacksPtr = ^NSMapTableKeyCallBacks;
type
  NSMapTableValueCallBacks = record
    retain: procedure (table: NSMapTable; param2: pointer); cdecl;
    release: procedure (table: NSMapTable; param2: pointer); cdecl;
    describe: function (table: NSMapTable; param2: pointer): NSString; cdecl;
  end;
type
  NSMapTableValueCallBacksPtr = ^NSMapTableValueCallBacks;
{$endif}

{$ifdef FUNCTIONS}
function NSCreateMapTableWithZone(keyCallBacks: NSMapTableKeyCallBacks; valueCallBacks: NSMapTableValueCallBacks; capacity: NSUInteger; zone: NSZonePtr): NSMapTable; cdecl; external;
function NSCreateMapTable(keyCallBacks: NSMapTableKeyCallBacks; valueCallBacks: NSMapTableValueCallBacks; capacity: NSUInteger): NSMapTable; cdecl; external;
{$endif}

{$ifdef EXTERNAL_SYMBOLS}
var
  NSIntegerMapKeyCallBacks: NSMapTableKeyCallBacks { available in 10_5 }; cvar; external;
  NSNonOwnedPointerMapKeyCallBacks: NSMapTableKeyCallBacks; cvar; external;
  NSNonOwnedPointerOrNullMapKeyCallBacks: NSMapTableKeyCallBacks; cvar; external;
  NSNonRetainedObjectMapKeyCallBacks: NSMapTableKeyCallBacks; cvar; external;
  NSObjectMapKeyCallBacks: NSMapTableKeyCallBacks; cvar; external;
  NSOwnedPointerMapKeyCallBacks: NSMapTableKeyCallBacks; cvar; external;
  NSIntMapKeyCallBacks: NSMapTableKeyCallBacks deprecated 'in 10_0, 10_5'; cvar; external;
  NSIntegerMapValueCallBacks: NSMapTableValueCallBacks { available in 10_5 }; cvar; external;
  NSNonOwnedPointerMapValueCallBacks: NSMapTableValueCallBacks; cvar; external;
  NSObjectMapValueCallBacks: NSMapTableValueCallBacks; cvar; external;
  NSNonRetainedObjectMapValueCallBacks: NSMapTableValueCallBacks; cvar; external;
  NSOwnedPointerMapValueCallBacks: NSMapTableValueCallBacks; cvar; external;
  NSIntMapValueCallBacks: NSMapTableValueCallBacks deprecated 'in 10_0, 10_5'; cvar; external;
{$endif}

{$else}

{$endif}
{$endif}