The Free and Open Productivity Suite
Follow us on Twitter: @ApacheOO

Developer's Guide

API

SDK

Tips 'n' Tricks

Miscellaneous


::

struct _rtl_ModuleCount


Base Classes
None.
Known Derived Classes
None.

virtual abstract interface template
NO NO NO NO
Description
Pointers to rtl_ModuleCount are passed as arguments to the default factory creator functions: createSingleComponentFactory, createSingleFactory, createOneInstanceFactory. The factory implementation is calling rtl_ModuleCount.acquire when it is being constructed and it is calling rtl_ModuleCount.release. The implementations of acquire and release should influence the return value of component_canUnload in a way that it returns sal_False after acquire has been called. That is the module will not be unloaded once a default factory has been created. A call to release may cause component_canUnload to return sal_False, but only if there are no object alive which originated from the module. These objects are factory instances and the service instances which have been created by these factories.

It is not necessary to synchronize acquire and release as a whole. Simply sychronize the access to a counter variable, e.g. the rtl_moduleCount_release implementation:

extern "C" void rtl_moduleCount_acquire(rtl_ModuleCount * that )
{
    rtl_StandardModuleCount* pMod= (rtl_StandardModuleCount*)that;
    osl_incrementInterlockedCount( &pMod->counter);
}
The SAL library offers functions that can be used for acquire and release. See struct _rtl_StandardModuleCount.
File
unload.h

Top of Page

Apache Software Foundation

Copyright & License | Privacy | Website Feedback | Contact Us | Donate | Thanks

Apache, the Apache feather logo, and OpenOffice are trademarks of The Apache Software Foundation. OpenOffice.org and the seagull logo are registered trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.