Difference between revisions of "Uno/Spec/Environment Stack"
From Apache OpenOffice Wiki
m (→Feature: Moved text from Uno/Spec/Threading Model here.) |
m (Fixed: section level.) |
||
Line 1: | Line 1: | ||
− | + | State: draft <br> | |
− | + | Type: specification<br> | |
− | + | ==Feature== | |
− | + | ||
− | + | ||
The [[../Runtime|Runtime]] allows to enter / leave a particular [[../Purpose Environment|Purpose Environment]], respectively to invoke functions in the [[../Purpose Environment|Purpose Environment]]. The current (purpose) environment does not only vary with the languages ABI (e.g. Java or C++), but also with the executed codes declared purpose type. | The [[../Runtime|Runtime]] allows to enter / leave a particular [[../Purpose Environment|Purpose Environment]], respectively to invoke functions in the [[../Purpose Environment|Purpose Environment]]. The current (purpose) environment does not only vary with the languages ABI (e.g. Java or C++), but also with the executed codes declared purpose type. | ||
− | + | ==Rationale== | |
Operations may need to be associated with the [[../Environment]](s) of a particular object. Such operations may set thread related global variables (e.g. the component- or current-context) or may acquire mutexes. | Operations may need to be associated with the [[../Environment]](s) of a particular object. Such operations may set thread related global variables (e.g. the component- or current-context) or may acquire mutexes. | ||
− | + | ==API== | |
* <code>getCurrentEnvironment</code> - Provides the current active [[../Environment]], in case no [[../Environment]] has been entered, the [[../Thread Affinity Bridge | Thread safe environment]] is returned. | * <code>getCurrentEnvironment</code> - Provides the current active [[../Environment]], in case no [[../Environment]] has been entered, the [[../Thread Affinity Bridge | Thread safe environment]] is returned. | ||
* <code>invoke</code> - Invokes the passed function in the given [[../Environment]]. | * <code>invoke</code> - Invokes the passed function in the given [[../Environment]]. | ||
Line 17: | Line 15: | ||
* <code>isValid</code> - Checks if the passed [[../Environment]] is active, so that objects belonging to this [[../Environment]] may be called. | * <code>isValid</code> - Checks if the passed [[../Environment]] is active, so that objects belonging to this [[../Environment]] may be called. | ||
− | + | ==Comment== | |
The enter / leave functionality may not be appropriate for all environments at all times. E.g. the [[../Thread Affinity Bridge | thread affine environment]] does not allow to be entered, while it already has a thread associated. | The enter / leave functionality may not be appropriate for all environments at all times. E.g. the [[../Thread Affinity Bridge | thread affine environment]] does not allow to be entered, while it already has a thread associated. | ||
[[Category:Uno:Spec]] | [[Category:Uno:Spec]] |
Revision as of 12:29, 1 September 2006
State: draft
Type: specification
Contents
Feature
The Runtime allows to enter / leave a particular Purpose Environment, respectively to invoke functions in the Purpose Environment. The current (purpose) environment does not only vary with the languages ABI (e.g. Java or C++), but also with the executed codes declared purpose type.
Rationale
Operations may need to be associated with the Uno/Spec/Environment(s) of a particular object. Such operations may set thread related global variables (e.g. the component- or current-context) or may acquire mutexes.
API
-
getCurrentEnvironment
- Provides the current active Uno/Spec/Environment, in case no Uno/Spec/Environment has been entered, the Thread safe environment is returned. -
invoke
- Invokes the passed function in the given Uno/Spec/Environment. -
enter
- Enters the given Uno/Spec/Environment. Uno/Spec/Environment can be left by entering another [../
Eenvironment]].
-
isValid
- Checks if the passed Uno/Spec/Environment is active, so that objects belonging to this Uno/Spec/Environment may be called.
Comment
The enter / leave functionality may not be appropriate for all environments at all times. E.g. the thread affine environment does not allow to be entered, while it already has a thread associated.