00001 #ifndef __AIDict__
00002 #define __AIDict__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef __AIEntry__
00031 #include "AIEntry.h"
00032 #endif
00033
00034
00035 #include "AIHeaderBegin.h"
00036
00039
00040
00041
00042
00043
00044
00045 #define kAIDictionarySuite "AI Dictionary Suite"
00046 #define kAIDictionarySuiteVersion8 AIAPI_VERSION(8)
00047 #define kAIDictionarySuiteVersion kAIDictionarySuiteVersion8
00048 #define kAIDictionaryVersion kAIDictionarySuiteVersion
00049
00050 #define kAIDictionaryIteratorSuite "AI Dictionary Iterator Suite"
00051 #define kAIDictionaryIteratorSuiteVersion3 AIAPI_VERSION(3)
00052 #define kAIDictionaryIteratorSuiteVersion kAIDictionaryIteratorSuiteVersion3
00053 #define kAIDictionaryIteratorVersion kAIDictionaryIteratorSuiteVersion
00054
00055
00057 #define kNoSuchKey 'NOKY'
00058
00059
00060
00061
00062
00063
00064
00065
00067 typedef const struct _t_AIDictKey *AIDictKey;
00068
00069
00072 typedef struct _AIDictionaryIterator* AIDictionaryIterator;
00073
00074
00076 typedef struct _AIDictionaryKeyChangedNotifyData {
00078 ai::int32 refStamp;
00080 AIDictionaryRef dictionary;
00082 AIDictKey key;
00083 } AIDictionaryKeyChangedNotifyData;
00084
00085
00086
00087
00088
00089
00090
00091
00114 struct AIDictionarySuite {
00115
00121 AIAPI AIErr (*CreateDictionary) ( AIDictionaryRef* dictionary );
00122
00123
00127 AIAPI ai::int32 (*AddRef) ( AIDictionaryRef dictionary );
00128
00134 AIAPI ai::int32 (*Release) ( AIDictionaryRef dictionary );
00135
00141 AIAPI AIErr (*Clone) ( ConstAIDictionaryRef src, AIDictionaryRef* dst );
00142
00147 AIAPI AIErr (*Copy) ( AIDictionaryRef dict, ConstAIDictionaryRef src );
00148
00154 AIAPI ai::uint32 (*Size) ( ConstAIDictionaryRef dict );
00155
00162 AIAPI AIErr (*Begin) ( ConstAIDictionaryRef dict, AIDictionaryIterator* iterator );
00163
00169 AIAPI AIDictKey (*Key) ( const char* keyString );
00170
00176 AIAPI const char* (*GetKeyString) ( AIDictKey key );
00177
00183 AIAPI AIBoolean (*IsKnown) ( ConstAIDictionaryRef dictionary, AIDictKey key );
00184
00189 AIAPI AIErr (*DeleteEntry) ( AIDictionaryRef dictionary, AIDictKey key );
00190
00197 AIAPI AIErr (*GetEntryType) ( ConstAIDictionaryRef dictionary, AIDictKey key, AIEntryType* entryType );
00198
00199
00207 AIAPI AIErr (*CopyEntry) ( ConstAIDictionaryRef dictionary1, AIDictionaryRef dictionary2,
00208 AIDictKey key1, AIDictKey key2 );
00209
00217 AIAPI AIErr (*MoveEntry) ( AIDictionaryRef dictionary1, AIDictionaryRef dictionary2,
00218 AIDictKey key1, AIDictKey key2 );
00219
00227 AIAPI AIErr (*SwapEntries) ( AIDictionaryRef dictionary1, AIDictionaryRef dictionary2,
00228 AIDictKey key1, AIDictKey key2 );
00229
00230
00236 AIAPI AIErr (*GetArtEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, AIArtHandle* art );
00237
00243 AIAPI AIErr (*NewArtEntry) ( AIDictionaryRef dictionary, AIDictKey key, ai::int16 type );
00244
00245
00252 AIAPI AIErr (*MoveArtToEntry) ( AIDictionaryRef dictionary, AIDictKey key, AIArtHandle art );
00253
00264 AIAPI AIErr (*MoveEntryToArt) ( AIDictionaryRef dictionary, AIDictKey key, ai::int16 paintOrder,
00265 AIArtHandle prep, AIArtHandle* art );
00266
00267
00273 AIAPI AIErr (*CopyArtToEntry) ( AIDictionaryRef dictionary, AIDictKey key, AIArtHandle art );
00274
00284 AIAPI AIErr (*CopyEntryToArt) ( ConstAIDictionaryRef dictionary, AIDictKey key, ai::int16 paintOrder,
00285 AIArtHandle prep, AIArtHandle* art );
00286
00292 AIAPI AIErr (*SetEntryToLayer) ( AIDictionaryRef dictionary, AIDictKey key, AILayerHandle layer );
00293
00305 AIAPI AIErr (*SetLayerToEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, ai::int16 paintOrder,
00306 AILayerHandle prep, AILayerHandle *layer );
00307
00314 AIAPI AIEntryRef (*Get) ( ConstAIDictionaryRef dictionary, AIDictKey key );
00315
00322 AIAPI AIErr (*Set) ( AIDictionaryRef dictionary, AIDictKey key, AIEntryRef entry );
00323
00324
00325
00331 AIAPI AIErr (*GetBooleanEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, AIBoolean* value );
00332
00338 AIAPI AIErr (*SetBooleanEntry) ( AIDictionaryRef dictionary, AIDictKey key, AIBoolean value );
00339
00345 AIAPI AIErr (*GetIntegerEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, ai::int32* value );
00346
00352 AIAPI AIErr (*SetIntegerEntry) ( AIDictionaryRef dictionary, AIDictKey key, ai::int32 value );
00353
00359 AIAPI AIErr (*GetPointerEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, ai::intptr* value );
00360
00366 AIAPI AIErr (*SetPointerEntry) ( AIDictionaryRef dictionary, AIDictKey key, ai::intptr value );
00367
00373 AIAPI AIErr (*GetRealEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, AIReal* value );
00374
00380 AIAPI AIErr (*SetRealEntry) ( AIDictionaryRef dictionary, AIDictKey key, AIReal value );
00381
00387 AIAPI AIErr (*GetStringEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, const char** value );
00388
00394 AIAPI AIErr (*SetStringEntry) ( AIDictionaryRef dictionary, AIDictKey key, const char* value );
00395
00402 AIAPI AIErr (*GetBinaryEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, void* value, size_t* size );
00403
00410 AIAPI AIErr (*SetBinaryEntry) ( AIDictionaryRef dictionary, AIDictKey key, void* value, size_t size );
00411
00417 AIAPI AIErr (*GetDictEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, AIDictionaryRef* value );
00418
00424 AIAPI AIErr (*SetDictEntry) ( AIDictionaryRef dictionary, AIDictKey key, AIDictionaryRef value );
00425
00431 AIAPI AIErr (*GetArrayEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, AIArrayRef* value );
00432
00438 AIAPI AIErr (*SetArrayEntry) ( AIDictionaryRef dictionary, AIDictKey key, AIArrayRef value );
00439
00445 AIAPI AIErr (*GetUnicodeStringEntry) ( ConstAIDictionaryRef dictionary, AIDictKey key, ai::UnicodeString& value );
00446
00452 AIAPI AIErr (*SetUnicodeStringEntry) ( AIDictionaryRef dictionary, AIDictKey key, const ai::UnicodeString& value );
00453
00459 AIAPI AIErr (*TouchArt) ( ConstAIDictionaryRef dictionary );
00460
00461 };
00462
00463
00470 struct AIDictionaryIteratorSuite {
00471
00475 AIAPI ai::int32 (*AddRef) ( AIDictionaryIterator iterator );
00476
00482 AIAPI ai::int32 (*Release) ( AIDictionaryIterator iterator );
00483
00489 AIAPI AIBoolean (*IsValid) ( AIDictionaryIterator iterator );
00490
00495 AIAPI AIErr (*Copy) ( AIDictionaryIterator iterator, AIDictionaryIterator from );
00496
00501 AIAPI AIErr (*Clone) ( AIDictionaryIterator iterator, AIDictionaryIterator* clone );
00502
00509 AIAPI AIBoolean (*IsEqual) ( AIDictionaryIterator iterator1, AIDictionaryIterator iterator2 );
00510
00516 AIAPI AIBoolean (*AtEnd) ( AIDictionaryIterator iterator );
00517
00523 AIAPI void (*Next) ( AIDictionaryIterator iterator );
00524
00530 AIAPI void (*Prev) ( AIDictionaryIterator iterator );
00531
00537 AIAPI AIDictKey (*GetKey) ( AIDictionaryIterator iterator );
00538
00539 };
00540
00541
00542 #include "AIHeaderEnd.h"
00543
00544
00545 #endif