-
Key: DDS-163
-
Legacy Issue Number: 7060
-
Status: closed
-
Source: THALES ( Virginie Watine)
-
Summary:
Issue [THALES]
Currently there is only one ObjectHome and one Cache Listeners. This has been considered by users as fairly limited and as several selections are allowed, unjustified
Proposal [THALES]
Allow several listeners.
Precise the triggering order
Concrete changes
IDL
local interface Selection {
...
SelectionListener set_listener (
in SelectionListener listener);
[instead attach_listener in the commented out section]
...
local interface Cache {
...
readonly attribute CacheListenerSeq listeners;
[instead readonly attribute CacheListener listener]
...
void detach_listener (
in CacheListener listener);
[instead no parameter]
...
local interface ObjectHome {
...
readonly attribute ObjectListenerSeq listeners;
[instead readonly attribute ObjectListener listener]
...
void detach_listener (
in ObjectListener listener);
[instead no parameter]
...
in section 3.1.6.3.3 Cache
in the table
list of attributes replace the entry for listener by the following
listeners CacheListener []
list of operations, replace the entry for detach_listener by the following
detach_listener void
listener CacheListener
in section 3.1.6.3.5 ObjectHome
in the table
list of attributes replace the entry for listener by the following
listeners ObjectListener []
list of operations, correct the entry for attach_listener by the following (ObjectListener instead of Listener)
attach_listener void
listener ObjectListener
list of operations, replace the entry for detach_listener by the following
detach_listener void
listener ObjectListener
in section 3.1.6.3.7 Selection
in the table, change the entries for attach_listener and detach_listener to only one operation set_listener, as follows:
set_listener SelectionListener
listener SelectionListener
in the following text, in the list starting with "it offers the methods to:"
change the first bullet to:
"set the listener (set_listener) that will be triggered when the composition of the selection changes as well as if one of its members is modified; set_listener returns the previously set listener if any; set_listener, called with a NULL parameter discards the current listener."
in section 3.1.6.4.1 General Scenario
In the list starting with "This set of updates is managed as follows"
change the first bullet to:
"First, all the CacheListener::start_updates operations are triggered; the order in which these listeners are triggered is not specified"
change the last bullet to:
"Finally all the CacheListener::end_updates operations are triggered and the modification state of the object are cleaned; the order in which these listeners are triggered is not specified."
in section 3.1.6.4.2 Object Creation
In the list
change the first bullet to:
"First, the ObjectListener suitable to that object are searched and their on_object_created operations triggered; the search follows the inheritance structure starting from the more specific ObjectHome (e.g., FooHome, for an object typed Foo) to ObjectRoot. The search is stopped when all on_object_created operations at one level return true; inside one level the triggering order is not specified."
in section 3.1.6.4.3 ObjectModification
In the list
change the last bullet to:
"Then, the ObjectListener suitable to that object are searched and their on_object_modified operations triggered; the search follows the inheritance structure starting from the more specific ObjectHome (e.g., FooHome, for an object typed Foo) to ObjectRoot. The search is stopped when all on_object_modified operations at one level return true; inside one level the triggering order is not specified."
in section 3.1.6.4.4 ObjectDeletion
In the list
change the last bullet to:
"the ObjectListener suitable to that object are searched and their on_object_deleted operations triggered; the search follows the inheritance structure starting from the more specific ObjectHome (e.g., FooHome, for an object typed Foo) to ObjectRoot. The search is stopped when all on_object_deleted operations at one level return true; inside one level the triggering order is not specified." -
Reported: DDS 1.0b1 — Thu, 26 Feb 2004 05:00 GMT
-
Disposition: Resolved — DDS 1.0
-
Disposition Summary:
see below
-
Updated: Fri, 6 Mar 2015 20:58 GMT