Difference between revisions of "Uno/Spec/Environment Stack"
From Apache OpenOffice Wiki
m (Added category.) |
(Reworked.) |
||
Line 2: | Line 2: | ||
type: specification<br> | type: specification<br> | ||
+ | == Environment Stack == | ||
− | Environment | + | === Feature === |
+ | The [[../Runtime]] allows to enter / leave an [[../Environment]], respectively to invoke functions in a particular [[../Environment]]. | ||
− | + | === 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. | |
− | + | ||
− | + | ||
+ | === 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>invoke</code> - Invokes the passed function in the given [[../Environment]]. | ||
+ | * <code>enter</code> - Enters the given [[../Environment]]. [[../Environment]] can be left by entering another [../ | ||
+ | Eenvironment]]. | ||
+ | * <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. | ||
− | |||
[[Category:Uno:Spec]] | [[Category:Uno:Spec]] |
Revision as of 12:03, 15 June 2006
state: draft
type: specification
Environment Stack
Feature
The Uno/Spec/Runtime allows to enter / leave an Uno/Spec/Environment, respectively to invoke functions in a particular Uno/Spec/Environment.
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.