Home | History | Annotate | Download | only in common

Lines Matching defs:plug

274 static void uplug_callPlug(UPlugData *plug, UPlugReason reason, UErrorCode *status) {
276 if(plug==NULL||U_FAILURE(*status)) {
279 token = (*(plug->entrypoint))(plug, reason, status);
286 static void uplug_unloadPlug(UPlugData *plug, UErrorCode *status) {
287 if(plug->awaitingLoad) { /* shouldn't happen. Plugin hasn'tbeen loaded yet.*/
291 if(U_SUCCESS(plug->pluginStatus)) {
292 /* Don't unload a plug which has a failing load status - means it didn't actually load. */
293 uplug_callPlug(plug, UPLUG_REASON_UNLOAD, status);
297 static void uplug_queryPlug(UPlugData *plug, UErrorCode *status) {
298 if(!plug->awaitingLoad || !(plug->level == UPLUG_LEVEL_UNKNOWN) ) { /* shouldn't happen. Plugin hasn'tbeen loaded yet.*/
302 plug->level = UPLUG_LEVEL_INVALID;
303 uplug_callPlug(plug, UPLUG_REASON_QUERY, status);
305 if(plug->level == UPLUG_LEVEL_INVALID) {
306 plug->pluginStatus = U_PLUGIN_DIDNT_SET_LEVEL;
307 plug->awaitingLoad = FALSE;
310 plug->pluginStatus = U_INTERNAL_PROGRAM_ERROR;
311 plug->awaitingLoad = FALSE;
316 static void uplug_loadPlug(UPlugData *plug, UErrorCode *status) {
320 if(!plug->awaitingLoad || (plug->level < UPLUG_LEVEL_LOW) ) { /* shouldn't happen. Plugin hasn'tbeen loaded yet.*/
324 uplug_callPlug(plug, UPLUG_REASON_LOAD, status);
325 plug->awaitingLoad = FALSE;
327 plug->pluginStatus = U_INTERNAL_PROGRAM_ERROR;
333 UPlugData *plug = NULL;
344 plug = &pluginList[pluginCount++];
346 plug->token = UPLUG_TOKEN;
347 plug->structSize = sizeof(UPlugData);
348 plug->name[0]=0;
349 plug->level = UPLUG_LEVEL_UNKNOWN; /* initialize to null state */
350 plug->awaitingLoad = TRUE;
351 plug->dontUnload = FALSE;
352 plug->pluginStatus = U_ZERO_ERROR;
353 plug->libName[0] = 0;
354 plug->config[0]=0;
355 plug->sym[0]=0;
356 plug->lib=NULL;
357 plug->entrypoint=NULL;
360 return plug;
365 UPlugData *plug = uplug_allocateEmptyPlug(status);
371 uprv_strncpy(plug->config, config, UPLUG_NAME_MAX);
373 plug->config[0] = 0;
377 uprv_strncpy(plug->sym, symName, UPLUG_NAME_MAX);
379 plug->sym[0] = 0;
382 plug->entrypoint = entrypoint;
383 plug->lib = lib;
384 uplug_queryPlug(plug, status);
386 return plug;
389 static void uplug_deallocatePlug(UPlugData *plug, UErrorCode *status) {
391 if(!plug->dontUnload) {
393 uplug_closeLibrary(plug->lib, &subStatus);
396 plug->lib = NULL;
403 pluginCount = uplug_removeEntryAt(pluginList, pluginCount, sizeof(plug[0]), uplug_pluginNumber(plug));
406 plug->awaitingLoad=FALSE;
407 plug->entrypoint=0;
408 plug->dontUnload=TRUE;
420 uplug_removePlug(UPlugData *plug, UErrorCode *status) {
426 if(cursor==plug) {
427 plugToRemove = plug;
521 uplug_getPlugLoadStatus(UPlugData *plug) {
522 return plug->pluginStatus;
533 UPlugData *plug = NULL;
535 plug = uplug_allocatePlug(entrypoint, config, lib, sym, status);
538 return plug;
540 uplug_deallocatePlug(plug, status);
547 UPlugData* plug = uplug_initPlugFromEntrypointAndLibrary(entrypoint, config, NULL, NULL, status);
548 uplug_loadPlug(plug, status);
549 return plug;
557 UPlugData *plug = uplug_allocateEmptyPlug(status);
560 plug->pluginStatus = loadStatus;
561 plug->awaitingLoad = FALSE; /* Won't load. */
562 plug->dontUnload = TRUE; /* cannot unload. */
565 uprv_strncpy(plug->sym, sym, UPLUG_NAME_MAX);
569 uprv_strncpy(plug->libName, libName, UPLUG_NAME_MAX);
573 uprv_strncpy(plug->name, nameOrError, UPLUG_NAME_MAX);
577 uprv_strncpy(plug->config, config, UPLUG_NAME_MAX);
580 return plug;
589 UPlugData *plug = NULL;
597 plug = uplug_initPlugFromEntrypointAndLibrary(entrypoint, config, lib, sym, status);
598 if(plug!=NULL&&U_SUCCESS(*status)) {
599 plug->lib = lib; /* plug takes ownership of library */
604 plug = uplug_initErrorPlug(libName,sym,config,"ERROR: Could not load entrypoint",(lib==NULL)?U_MISSING_RESOURCE_ERROR:*status,&subStatus);
612 plug = uplug_initErrorPlug(libName,sym,config,"ERROR: could not load library",(lib==NULL)?U_MISSING_RESOURCE_ERROR:*status,&subStatus);
614 return plug;
619 UPlugData *plug = NULL;
621 plug = uplug_initPlugFromLibrary(libName, sym, config, status);
622 uplug_loadPlug(plug, status);
624 return plug;
856 UPlugData *plug = uplug_initPlugFromLibrary(libName, symName, config, &subStatus);
862 DBG((stderr, " -> %p, %s\n", (void*)plug, u_errorName(subStatus)));
864 (void)plug; /* unused */