Issue 5937: 'local executor mapping' (components-ftf) Source: (, ) Nature: Uncategorized Issue Severity: Summary: @@ It seems to me that generating 'local executor mapping' for supported by a component interfaces is not needed. Even though spec doesn't say directly that it's needed or not there are plenty of examples where it is shown generated. @@ According to the spec the following IDL is valid interface I; component C { provides I i; }; while this is not: interface I; component C { uses I i; }; Any reason for that? @@ According to the spec Home cannot be forward-declared. Any reason for that? @@ The following CIDL is legal according to the spec: interface I; component C { provides I i; }; home H manages C { }; composition session Impl { home executor H_Exec { implements H; manages C_Exec; }; }; However there is no way to generate valid local executor mapping for this CIDL. The resolution would be to require all forward-declared interfaces used by component's provides declarations to be defined before composition for this component is seen. I.e. the following CIDL would be a corrected version: interface I; component C { provides I i; }; home H manages C { }; interface I {}; composition session Impl { home executor H_Exec { implements H; manages C_Exec; }; }; @@ The following legal according to the spec IDL: module M { module Components { struct EnterpriseComponent {}; }; component C {}; }; would result in local executor mapping that looks something like this: module M { module Components { struct EnterpriseComponent {}; }; component C {}; }; module M { local interface C : Components::EnterpriseComponent {}; }; which is illegal IDL. The resolution would be to require names like Components::EnterpriseComponent to be fully qualified e.g. ::Components::EnterpriseComponent. Resolution: Revised Text: Actions taken: May 7, 2003: received issue Discussion: End of Annotations:===== Date: Wed, 7 May 2003 19:10:26 -0500 From: Boris Kolpackov To: issues@omg.org, components-rtf@omg.org Cc: boris@isis-server.isis.vanderbilt.edu, Jeffrey Parsons , Nanbor Wang Subject: CCM spec clarifications/issues User-Agent: Mutt/1.3.28i X-Mailer: mutt X-Uptime: 5 days X-URL: http://www.kolpackov.net/ X-Accept-Language: en, ru X-Location: USA, TN, Nashville Good day, @@ It seems to me that generating 'local executor mapping' for supported by a component interfaces is not needed. Even though spec doesn't say directly that it's needed or not there are plenty of examples where it is shown generated. @@ According to the spec the following IDL is valid interface I; component C { provides I i; }; while this is not: interface I; component C { uses I i; }; Any reason for that? @@ According to the spec Home cannot be forward-declared. Any reason for that? @@ The following CIDL is legal according to the spec: interface I; component C { provides I i; }; home H manages C { }; composition session Impl { home executor H_Exec { implements H; manages C_Exec; }; }; However there is no way to generate valid local executor mapping for this CIDL. The resolution would be to require all forward-declared interfaces used by component's provides declarations to be defined before composition for this component is seen. I.e. the following CIDL would be a corrected version: interface I; component C { provides I i; }; home H manages C { }; interface I {}; composition session Impl { home executor H_Exec { implements H; manages C_Exec; }; }; @@ The following legal according to the spec IDL: module M { module Components { struct EnterpriseComponent {}; }; component C {}; }; would result in local executor mapping that looks something like this: module M { module Components { struct EnterpriseComponent {}; }; component C {}; }; module M { local interface C : Components::EnterpriseComponent {}; }; which is illegal IDL. The resolution would be to require names like Components::EnterpriseComponent to be fully qualified e.g. ::Components::EnterpriseComponent. thanks, -boris