00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __SPSuites__
00021 #define __SPSuites__
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "SPTypes.h"
00031 #include "SPAccess.h"
00032 #include "SPPlugs.h"
00033 #include "SPStrngs.h"
00034
00035 #include "SPHeaderBegin.h"
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00041
00042
00043
00044
00045
00046
00048 #define kSPSuitesSuite "SP Suites Suite"
00049
00050 #define kSPSuitesSuiteVersion 2
00051
00053 #define kSPLatestInternalVersion 0
00054
00057 #define kSPRuntimeSuiteList ((SPSuiteListRef)NULL)
00058
00059 #define kAIAboutToLoadSuite "About To Load SPSuite"
00060
00061
00062
00063
00064
00065
00066
00068 typedef struct SPSuite *SPSuiteRef;
00072 typedef struct SPSuiteList *SPSuiteListRef;
00075 typedef struct SPSuiteListIterator *SPSuiteListIteratorRef;
00076
00077
00078
00079
00080
00081
00082
00083
00104 typedef struct SPSuitesSuite {
00105
00112 SPAPI SPErr (*AllocateSuiteList)( SPStringPoolRef stringPool, SPPluginListRef plugins,
00113 SPSuiteListRef *suiteList );
00114
00119 SPAPI SPErr (*FreeSuiteList)( SPSuiteListRef suiteList );
00120
00134 SPAPI SPErr (*AddSuite)( SPSuiteListRef suiteList, SPPluginRef host, const char *name,
00135 ai::int32 apiVersion, ai::int32 internalVersion, const void *suiteProcs, SPSuiteRef *suite );
00136
00149 SPAPI SPErr (*AcquireSuite)( SPSuiteListRef suiteList, const char *name, ai::int32 apiVersion,
00150 ai::int32 internalVersion, const void **suiteProcs );
00151
00160 SPAPI SPErr (*ReleaseSuite)( SPSuiteListRef suiteList, const char *name, ai::int32 apiVersion,
00161 ai::int32 internalVersion );
00162
00172 SPAPI SPErr (*FindSuite)( SPSuiteListRef suiteList, const char *name, ai::int32 apiVersion,
00173 ai::int32 internalVersion, SPSuiteRef *suite );
00174
00182 SPAPI SPErr (*NewSuiteListIterator)( SPSuiteListRef suiteList, SPSuiteListIteratorRef *iter );
00189 SPAPI SPErr (*NextSuite)( SPSuiteListIteratorRef iter, SPSuiteRef *suite );
00194 SPAPI SPErr (*DeleteSuiteListIterator)( SPSuiteListIteratorRef iter );
00195
00200 SPAPI SPErr (*GetSuiteHost)( SPSuiteRef suite, SPPluginRef *plugin );
00205 SPAPI SPErr (*GetSuiteName)( SPSuiteRef suite, const char **name );
00210 SPAPI SPErr (*GetSuiteAPIVersion)( SPSuiteRef suite, ai::int32 *version );
00215 SPAPI SPErr (*GetSuiteInternalVersion)( SPSuiteRef suite, ai::int32 *version );
00221 SPAPI SPErr (*GetSuiteProcs)( SPSuiteRef suite, const void **suiteProcs );
00226 SPAPI SPErr (*GetSuiteAcquireCount)( SPSuiteRef suite, ai::int32 *count );
00227
00228 } SPSuitesSuite;
00229
00230
00232 SPAPI SPErr SPAllocateSuiteList( SPStringPoolRef stringPool, SPPluginListRef plugins,
00233 SPSuiteListRef *suiteList );
00234
00236 SPAPI SPErr SPFreeSuiteList( SPSuiteListRef suiteList );
00237
00239 SPAPI SPErr SPAddSuite( SPSuiteListRef suiteList, SPPluginRef host, const char *name,
00240 ai::int32 apiVersion, ai::int32 internalVersion, const void *suiteProcs, SPSuiteRef *suite );
00241
00243 SPAPI SPErr SPRemoveSuite( SPSuiteListRef suiteList, SPSuiteRef suite);
00244
00246 SPAPI SPErr SPRemoveSuiteEx( SPSuiteListRef suiteList, const char *name, ai::int32 apiVersion, ai::int32 internalVersion);
00247
00248
00250 SPAPI SPErr SPAcquireSuite( SPSuiteListRef suiteList, const char *name, ai::int32 apiVersion,
00251 ai::int32 internalVersion, const void **suiteProcs );
00252
00254 SPAPI SPErr SPReleaseSuite( SPSuiteListRef suiteList, const char *name, ai::int32 apiVersion,
00255 ai::int32 internalVersion );
00256
00258 SPAPI SPErr SPFindSuite( SPSuiteListRef suiteList, const char *name, ai::int32 apiVersion,
00259 ai::int32 internalVersion, SPSuiteRef *suite );
00260
00262 SPAPI SPErr SPNewSuiteListIterator( SPSuiteListRef suiteList, SPSuiteListIteratorRef *iter );
00264 SPAPI SPErr SPNextSuite( SPSuiteListIteratorRef iter, SPSuiteRef *suite );
00266 SPAPI SPErr SPDeleteSuiteListIterator( SPSuiteListIteratorRef iter );
00267
00269 SPAPI SPErr SPGetSuiteHost( SPSuiteRef suite, SPPluginRef *plugin );
00271 SPAPI SPErr SPGetSuiteName( SPSuiteRef suite, const char **name );
00273 SPAPI SPErr SPGetSuiteAPIVersion( SPSuiteRef suite, ai::int32 *version );
00275 SPAPI SPErr SPGetSuiteInternalVersion( SPSuiteRef suite, ai::int32 *version );
00277 SPAPI SPErr SPGetSuiteProcs( SPSuiteRef suite, const void **suiteProcs );
00279 SPAPI SPErr SPGetSuiteAcquireCount( SPSuiteRef suite, ai::int32 *count );
00280
00281
00282
00283
00284
00285
00286
00287
00288 #include "SPErrorCodes.h"
00289
00290 #ifdef __cplusplus
00291 }
00292 #endif
00293
00294 #include "SPHeaderEnd.h"
00295
00296 #endif