|
SPAccess.h File Reference#include "SPTypes.h"
#include "SPPlugs.h"
#include "SPMData.h"
#import <CoreServices/CoreServices.h>
#include "AIWinDef.h"
#include "SPHeaderBegin.h"
#include "SPErrorCodes.h"
#include "SPHeaderEnd.h"
Go to the source code of this file.
Classes |
struct | SPMacResChain |
| Resource chain access information on Mac OS. More...
|
struct | SPPlatformAccessInfo |
| Access information for the resource chain on Mac OS, or library information on Windows. More...
|
struct | SPAccessMessage |
| Message sent with the kSPAccessCaller . More...
|
struct | SPAccessSuite |
| This suite is used to load and unload plug-ins. More...
|
Defines |
#define | kSPAccessSuite "SP Access Suite" |
| Plug-in Access suite name.
|
#define | kSPAccessSuiteVersion 3 |
| Plug-in Access suite name.
|
#define | kSPAccessCaller "SP Access" |
| The SPAccessSuite sends a reload message (kSPAccessReloadSelector ) to a plug-in when it has just been loaded, and an unload message (kSPAccessUnloadSelector ) when it is about to be unloaded.
|
#define | kSPAccessReloadSelector "Reload" |
| The first message a plug-in receives on startup (whether loaded or reloaded).
|
#define | kSPAccessUnloadSelector "Unload" |
| The first message a plug-in receives before being unloaded.
|
#define | kSPFlushAccessType "SP Flush Access" |
| The name of the object that the SPAccessSuite caches, which can be purged when caches are flushed.
|
Typedefs |
typedef SPAPI SPErr(* | SPEntry )(const char *caller, const char *selector, void *message) |
| Prototype for a plug-in entry point, which receives messages from the application or other plug-ins.
|
typedef struct SPAccess * | SPAccessRef |
| A plug-in access object, used with the SPAccessSuite to make calls to a plug-in.
|
typedef short | FSIORefNum |
typedef SPMacResChain * | SPPlatformAccessRef |
| Resource chain access information on Mac OS.
|
Enumerations |
enum | SPAccessPoint { kStartup = 0,
kRuntime,
kShutdown,
kTerminal
} |
| Sent in the SPAccessMessage to identify when an access call was made.
More...
|
Functions |
SPAPI SPErr | SPAcquirePlugin (SPPluginRef plugin, SPAccessRef *access) |
| Internal.
|
SPAPI SPErr | SPReleasePlugin (SPAccessRef access) |
| Internal.
|
SPAPI SPErr | SPGetPluginAccess (SPPluginRef plugin, SPAccessRef *access) |
| Internal.
|
SPAPI SPErr | SPGetAccessPlugin (SPAccessRef access, SPPluginRef *plugin) |
| Internal.
|
SPAPI SPErr | SPGetAccessEntry (SPAccessRef access, SPEntry *entry) |
| Internal.
|
SPAPI SPErr | SPGetAccessCount (SPAccessRef access, ai::int32 *count) |
| Internal.
|
SPAPI SPErr | SPGetAccessInfo (SPAccessRef access, SPPlatformAccessInfo *info) |
| Internal.
|
SPAPI SPErr | SPGetPluginResourceAccess (SPPluginRef plugin, SPPlatformAccessRef *resourceAccess) |
| Internal.
|
SPAPI SPErr | SPSetPluginResourceAccess (SPPluginRef plugin, SPPlatformAccessRef resourceAccess) |
| Internal.
|
SPAPI SPErr | SPCallPlugin (SPAccessRef access, const char *caller, const char *selector, void *message, SPErr *result) |
| Internal.
|
SPAPI SPErr | SPGetCurrentPlugin (SPPluginRef *plugin) |
| Internal.
|
SPAPI SPErr | SPSetCurrentPlugin (SPPluginRef plugin) |
| Internal.
|
Define Documentation
#define kSPAccessSuite "SP Access Suite" |
Plug-in Access suite name.
#define kSPAccessSuiteVersion 3 |
Plug-in Access suite name.
#define kSPFlushAccessType "SP Flush Access" |
The name of the object that the SPAccessSuite caches, which can be purged when caches are flushed.
During a cache flush, if this is the type sent to the SPFlushCachesProc , it can make calls to the Access suite to collect information about the access object before deciding to purge it or not.
For example, this purges filter plug-ins before window plug-ins:
long myFlushCachesProc( const char *type, void *data, SPErr *error ) {
long flush = TRUE;
if ( strcmp( type, kSPFlushAccessType ) == 0 ) {
SPAccessRef access = data;
SPPluginRef plugin = sAccess->GetAccessPlugin( access, error );
fail( error );
switch ( myPluginType( plugin ) ) {
case kMyFilterPlugin:
if ( gPurgeLevel < kFilterPurgeLevel )
flush = FALSE;
break;
case kMyWindowPlugin:
if ( gPurgeLevel < kWindowPurgeLevel )
flush = FALSE;
break;
}
}
return flush;
}
Typedef Documentation
A plug-in access object, used with the SPAccessSuite to make calls to a plug-in.
These objects are reference counted. The count is incremented when you acquire the object using SPAccessSuite::AcquirePlugin() and decremented when you release it with SPAccessSuite::ReleasePlugin() , so you must be careful to balance these calls. The object is automatically created and the plug-in loaded if necessary, and the object is destroyed and the plug-in unloaded when the reference count is 0.
typedef SPAPI SPErr(* SPEntry)(const char *caller, const char *selector, void *message) |
Prototype for a plug-in entry point, which receives messages from the application or other plug-ins.
- Parameters:
-
| caller | The caller, which identifies what suite or subsystem made the call. See Plug-in Callers. |
| selector | The specific event that triggered the call. See Plug-in Selectors. |
| message | The message data, whose type depends on the specific event. |
Resource chain access information on Mac OS.
Plug-in library handle on Windows.
Enumeration Type Documentation
Sent in the SPAccessMessage to identify when an access call was made.
Use to distinguish a start-up load from a run-time load or reload, and a run-time unload from a shut-down unload.
- Enumerator:
kStartup |
The receiving plug-in has been loaded at application startup, and not yet initialized.
Sent with the kSPAccessReloadSelector .
|
kRuntime |
The receiving plug-in has been loaded programmatically while the application is running, and has already been initialized.
Sent with the kSPAccessReloadSelector and the kSPAccessUnloadSelector .
|
kShutdown |
The receiving plug-in is about to be unloaded after being shut down.
Sent with the kSPAccessUnloadSelector .
|
kTerminal |
The receiving plug-in has a non-zero access count and the application is shutting down.
Sent with the kSPAccessUnloadSelector . If the plug-in has acquired itself in order to remain in memory, it should not free any resources and not acquire others when this call is received.
|
Function Documentation
SPAPI SPErr SPCallPlugin |
( |
SPAccessRef |
access, |
|
|
const char * |
caller, |
|
|
const char * |
selector, |
|
|
void * |
message, |
|
|
SPErr * |
result | |
|
) |
| | |
|