Issue 2920: Telecom logging -- illegal IDL (log_service-ftf) Source: Triodia Technologies Pty Ltd (Mr. Michi Henning, michi(at)triodia.com) Nature: Uncategorized Issue Severity: Summary: The Notification Service defines: module CosNotification { // ... interface QoSAdmin { QoSProperties get_qos(); void set_qos(in QoSProperties qos) raises(UnsupportedQoS); // ... }; // ... }; module CosNotifyChannelAdmin { // ... interface EventChannel : CosNotification::QoSAdmin, CosNotification::AdminPropertiesAdmin, CosEventChannelAdmin::EventChannel { // ... }; // ... }; The Logging Service defines: module DSLogAdmin { // ... interface Log { // ... QoSList get_qos(); void set_qos(in QoSList qos) raises(UnsupportedQoS); // ... }; }; module DsEventLogAdmin { interface EventLog : DsLogAdmin::Log, CosEventChannelAdmin::EventChannel {}; // ... }; module DsNotifyLogAdmin { interface NotifyLog : DsEventLogAdmin::EventLog, CosNotifyChannelAdmin::EventChannel { // ... }; }; The net result is that DsNotifyLogAdmin::NotifyLog inherits get_qos() and set_qos() twice, once from QoSNotification::QoSAdmin, and once from DSLogAdmin::Log, which is illegal. This makes the Logging Service unimplementable right now. Looks like the operations in DSLogAdmin::Log will have to be renamed or the inheritance structure will have to change. Resolution: Revised Text: Actions taken: October 1, 1999: received issue Discussion: End of Annotations:===== Date: Fri, 1 Oct 1999 08:46:57 +1000 (EST) From: Michi Henning X-Sender: michi@bobo.triodia.com To: issues@omg.org Subject: Telecom logging -- illegal IDL Message-ID: Organization: Object Oriented Concepts MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-UIDL: ,[\d9>?Ce9:#&e9E#hd9 Hi, The Notification Service defines: module CosNotification { // ... interface QoSAdmin { QoSProperties get_qos(); void set_qos(in QoSProperties qos) raises(UnsupportedQoS); // ... }; // ... }; module CosNotifyChannelAdmin { // ... interface EventChannel : CosNotification::QoSAdmin, CosNotification::AdminPropertiesAdmin, CosEventChannelAdmin::EventChannel { // ... }; // ... }; The Logging Service defines: module DSLogAdmin { // ... interface Log { // ... QoSList get_qos(); void set_qos(in QoSList qos) raises(UnsupportedQoS); // ... }; }; module DsEventLogAdmin { interface EventLog : DsLogAdmin::Log, CosEventChannelAdmin::EventChannel {}; // ... }; module DsNotifyLogAdmin { interface NotifyLog : DsEventLogAdmin::EventLog, CosNotifyChannelAdmin::EventChannel { // ... }; }; The net result is that DsNotifyLogAdmin::NotifyLog inherits get_qos() and set_qos() twice, once from QoSNotification::QoSAdmin, and once from DSLogAdmin::Log, which is illegal. This makes the Logging Service unimplementable right now. Looks like the operations in DSLogAdmin::Log will have to be renamed or the inheritance structure will have to change. Cheers, Michi. PS: Question on P&P -- didn't we make a rule to say that submissions must be accompanied by IDL in a text file, together with a statement as to which IDL compilers were used to compile the IDL? -- Michi Henning +61 7 3236 1633 Object Oriented Concepts +61 4 1118 2700 (mobile) PO Box 372 +61 7 3211 0047 (fax) Annerley 4103 michi@ooc.com.au AUSTRALIA http://www.ooc.com From: "Rutt, T E (Tom)" To: log_service-ftf@emerald.omg.org Subject: RE: issue 2920 -- Log Service FTF issue Date: Thu, 21 Oct 1999 14:27:27 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2448.0) Content-Type: text/plain X-UIDL: A-5e9B_'e9a[$"!~)2!! > ---------- > From: Juergen Boldt[SMTP:juergen@omg.org] > Sent: Wednesday, October 20, 1999 5:15 PM > To: issues@emerald.omg.org; log_service-ftf@emerald.omg.org > Subject: issue 2920 -- Log Service FTF issue > > This is issue # 2920 > > Telecom logging -- illegal IDL > > The Notification Service defines: > > module CosNotification { > // ... > interface QoSAdmin { > QoSProperties get_qos(); > void set_qos(in QoSProperties qos) > raises(UnsupportedQoS); > // ... > }; > // ... > }; > > module CosNotifyChannelAdmin { > // ... > interface EventChannel : > CosNotification::QoSAdmin, > CosNotification::AdminPropertiesAdmin, > CosEventChannelAdmin::EventChannel { > // ... > }; > // ... > }; > > The Logging Service defines: > > module DSLogAdmin { > // ... > interface Log { > // ... > QoSList get_qos(); > void set_qos(in QoSList qos) > raises(UnsupportedQoS); > // ... > It seems the best fix is to have log inherit get_qos and set_qos by > adding the qos_admin interface to the inheritance list of log. This is the > easiest fix, and results in the same leaf interface operation signitures, even > if it has rather large occurrances of "diamond" inheritance structures. > }; > }; > > module DsEventLogAdmin { > interface EventLog : > DsLogAdmin::Log, > CosEventChannelAdmin::EventChannel {}; > // ... > }; > > module DsNotifyLogAdmin { > interface NotifyLog : > DsEventLogAdmin::EventLog, > CosNotifyChannelAdmin::EventChannel { > // ... > }; > }; > > The net result is that DsNotifyLogAdmin::NotifyLog inherits get_qos() > and set_qos() twice, once from QoSNotification::QoSAdmin, and once from > DSLogAdmin::Log, which is illegal. This makes the Logging Service > unimplementable right now. > > Looks like the operations in DSLogAdmin::Log will have to be renamed or > the inheritance structure will have to change. > > -- > Tom Rutt > Lucent Technologies - Bell Labs > Rm 4L-336 Tel: +1(732)949-7862 > 101 Crawford Corner Rd Fax: +1(732)949-1196 > Holmdel NJ, 07733 USA email: terutt@lucent.com > Sender: spruce@ovdm40.cnd.hp.com Message-ID: <38148B53.D90B3E4D@fc.hp.com> Date: Mon, 25 Oct 1999 10:54:43 -0600 From: Stephen Spruce Organization: Communications Management Division X-Mailer: Mozilla 4.08 [en] (X11; I; HP-UX B.10.20 9000/777) MIME-Version: 1.0 To: Juergen Boldt , wayne@omg.org Cc: issues@emerald.omg.org, log_service-ftf@emerald.omg.org Subject: Re: issue 2920 -- Log Service FTF issue References: <4.1.19991020171442.00aed5e0@emerald.omg.org> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: J!(e9/^k!!8`h!!DQBe9 Juergen, There is a simple solution to this issue suggested by Tom Rutt. The IDL is changed so the the Log interface inherits from the CosNotification::QoSAdmin interface. DsLogAdmin::Log should no longer define the get_qos() and set_qos() operations. The QoSType, QoSList, and UnsupportedQoS types defined in DsLogAdmin would no longer be needed. Finally the constants QoSNone, QoSFlush, and QoSReliability would no longer need to be defined, but become documented as QoSProperties supported by the TLS. The solution is a clean one and actually clears up potential confusion later. With the new inheritance, the Telecom Log Service no longer "redefines" the concept of Quality of Service, but rather leverages fully the concept previously defined in the Notification Service. Besides the change to the IDL there is a bit of fixing that will need to be done to the Specification. I am getting the feeling from Wayne Haughey and Andrew Watson that a fix to the IDL is sufficient for now (while voting is being done in the Domain Technology Committee) and that the Specification can be changed later in an RTF. Thanx again to Tom Rutt for the quick fix. regards, stephen Juergen Boldt wrote: > > This is issue # 2920 > > Telecom logging -- illegal IDL > > The Notification Service defines: > > module CosNotification { > // ... > interface QoSAdmin { > QoSProperties get_qos(); > void set_qos(in QoSProperties qos) > raises(UnsupportedQoS); > // ... > }; > // ... > }; > > module CosNotifyChannelAdmin { > // ... > interface EventChannel : > CosNotification::QoSAdmin, > > CosNotification::AdminPropertiesAdmin, > CosEventChannelAdmin::EventChannel { > // ... > }; > // ... > }; > > The Logging Service defines: > > module DSLogAdmin { > // ... > interface Log { > // ... > QoSList get_qos(); > void set_qos(in QoSList qos) > raises(UnsupportedQoS); > // ... > }; > }; > > module DsEventLogAdmin { > interface EventLog : > DsLogAdmin::Log, > CosEventChannelAdmin::EventChannel > {}; > // ... > }; > > module DsNotifyLogAdmin { > interface NotifyLog : > DsEventLogAdmin::EventLog, > CosNotifyChannelAdmin::EventChannel > { > // ... > }; > }; > > The net result is that DsNotifyLogAdmin::NotifyLog inherits > get_qos() > and set_qos() twice, once from QoSNotification::QoSAdmin, and once > from > DSLogAdmin::Log, which is illegal. This makes the Logging Service > unimplementable right now. > > Looks like the operations in DSLogAdmin::Log will have to be renamed > or > the inheritance structure will have to change. -- Stephen H. Spruce Jr. Communication Management Division Hewlett-Packard Co. Ft. Collins, CO (970) 898-7497 spruce@fc.hp.com