-
Key: CORBA35-52
-
Legacy Issue Number: 5937
-
Status: open
-
Source: Anonymous
-
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;
{ provides I i; };
component C
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
{ implements H; manages C_Exec; };
{
home executor H_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. -
Reported: CORBA 3.0.2 — Wed, 7 May 2003 04:00 GMT
-
Updated: Wed, 1 Feb 2023 21:59 GMT