[Ace-users] Re: [ciao-users] Using IDL interface as a parameter of a facet method

Gan Deng gan.deng at vanderbilt.edu
Fri Aug 17 11:11:18 CDT 2007


Hi Santos,

> I have an component declared like that:
> 
> *ApplicationBase.idl
> 
> interface CommandBase {
>   start();
> };
> 
> typedef sequence<CommandBase> CommandsBase;
> 
> interface ApplicationFacet {
>   submit (in CommandsBase comms);
> };
> 
> In the *Application.idl i have:
> 
> interface Create:CommandBase;
> interface Remove:CommandBase;
> 
> component Application {
>   provides ApplicationFacet app_fac;
> };
> 
> I need to implement the method start() for the classes Create and Remove 
> that inherit from CommandBase. As shown above, an array of CommandBase 
> sequence type is the argument for the facet method. I understand that as 
> Create and Remove are CORBA objects they will passed as reference to the 
> facet, is that correct? 

Yes, that's correct.

> Do I need to implement the Create and Remove 
> interfaces as ordinary CORBA objects? 

Sure you can.

> Do you think it would be better to 
> make CommandBase a supported type of a component like that:
> 
> interface ICommandBaseFacet {
>   start();
> };
> 
> component CreateCommand supports ICommandBaseFacet { }

I don't know the motivation of this. What is the logic behind of 
treating a CreateCommand as a CCM component?

> Or that would be better to use a valuetype?

In your case, I think ordinary CORBA interface should be fine, unless 
you have some other reasons.

> Sorry to ask all these questions but since I don't have much experience 
> with CORBA programming I would appreciatte if you can help me with an 
> advice of the best way to program that.

No problem! Please let us know if you have any other questions.

Take care,
Gan



More information about the Ace-users mailing list