Issue 10690: The Implied IDL needs to be extended with attribute examples for class Foo (data-distribution-rtf) Source: PrismTech (Mr. Erik Hendriks, erik.hendriks(at)prismtech.com) Nature: Clarification Severity: Summary: Problem: In the implied IDL section 3.2.1.2.2 on page 3-59 it shows what classes/operation are generated for a fictional type Foo. However this example is too simplistic, it would be helpful to extend the example for valuetype Foo, so that the valuetype contains one simple attribute, one simple key field attribute and one mono relation and one multi relation, as an example to what methods are generated because of such attributes. Our suggestion is to add the following attributes to the Foo class: public long x; //keyfield of the underlying topic public long y; public Bar a_bar; public BarSet bars; The Bar class itself is left out of consideration for the example. Solution: Replace: This section contains the implied IDL constructs for an application-defined class named Foo. #include "dds_dlrl.idl" valuetype Foo: DDS::ObjectRoot { // some attributes and methods }; With: This section contains the implied IDL constructs for an application-defined class named Foo. For example purposes several attributes are defined on Foo. Namely: · public long x (keyfield of the underlying Foo topic) · public long y (a regular field) · public Bar a_bar (mono relation to a Bar DLRL object) · public BarSet bars (multi relation of Bar DLRL objects) The related Bar classes are not worked out in the implied IDL, but just mentioned as forward valuetype defintions. #include "dds_dlrl.idl" //forward declarations of Bar and it's helper classes. Bar itself is not worked out //in the implied IDL valuetype Bar; valuetype BarSet; valuetype Foo: DDS::ObjectRoot { //getter methods for all attributes long get_x(); long get_y(); Bar get_a_bar() raises (DDS::NotFound); BarSet get_bars(); //setter methods for all attributes void set_x(long val) raises (DDS::PreconditionNotMet); void set_y(long val) raises (DDS::PreconditionNotMet); void set_a_bar(Bar val) raises (DDS::PreconditionNotMet); void set_bars(BarSet val) raises (DDS::PreconditionNotMet); //is_xxx_modified methods for all attributes boolean is_x_modified(); boolean is_y_modified(); boolean is_a_bar_modified(DDS::ReferenceScope scope); boolean is_bars_modified(DDS::ReferenceScope scope); }; Resolution: Revised Text: Actions taken: February 12, 2007: received issue Discussion: End of Annotations:===== s is issue # 10690 From: "Erik Hendriks" The Implied IDL needs to be extended with attribute examples for class Foo Problem: In the implied IDL section 3.2.1.2.2 on page 3-59 it shows what classes/operation are generated for a fictional type Foo. However this example is too simplistic, it would be helpful to extend the example for valuetype Foo, so that the valuetype contains one simple attribute, one simple key field attribute and one mono relation and one multi relation, as an example to what methods are generated because of such attributes. Our suggestion is to add the following attributes to the Foo class: public long x; //keyfield of the underlying topic public long y; public Bar a_bar; public BarSet bars; The Bar class itself is left out of consideration for the example. Solution: Replace: This section contains the implied IDL constructs for an application-defined class named Foo. #include "dds_dlrl.idl" valuetype Foo: DDS::ObjectRoot { // some attributes and methods }; With: This section contains the implied IDL constructs for an application-defined class named Foo. For example purposes several attributes are defined on Foo. Namely: · public long x (keyfield of the underlying Foo topic) · public long y (a regular field) · public Bar a_bar (mono relation to a Bar DLRL object) · public BarSet bars (multi relation of Bar DLRL objects) The related Bar classes are not worked out in the implied IDL, but just mentioned as forward valuetype defintions. #include "dds_dlrl.idl" //forward declarations of Bar and it's helper classes. Bar itself is not worked out //in the implied IDL valuetype Bar; valuetype BarSet; valuetype Foo: DDS::ObjectRoot { //getter methods for all attributes long get_x(); long get_y(); Bar get_a_bar() raises (DDS::NotFound); BarSet get_bars(); //setter methods for all attributes void set_x(long val) raises (DDS::PreconditionNotMet); void set_y(long val) raises (DDS::PreconditionNotMet); void set_a_bar(Bar val) raises (DDS::PreconditionNotMet); void set_bars(BarSet val) raises (DDS::PreconditionNotMet); //is_xxx_modified methods for all attributes boolean is_x_modified(); boolean is_y_modified(); boolean is_a_bar_modified(DDS::ReferenceScope scope); boolean is_bars_modified(DDS::ReferenceScope scope); }; Juergen Boldt Director, Member Services Object Management Group 140 Kendrick St Building A Suite 300 Needham, MA 02494 USA tel: +1 781 444 0404 x 132 fax: +1 781 444 0320 email: juergen@omg.org www.omg.org