[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: Dúvidas no RecordSet



Ola Tiago. Alguns palpites:

Citando Tiago Motta Jorge <tigod@linux.ime.usp.br>:
>    (1) "interfaces" definidas na IDL, quando utilizadas no tipo de 
> retorno de algum método de alguma outra interface, funcionarão como? 
> Serão passadas referências?
Acho que é passado por referência sim. O cliente só vê essa interface e delega
as requisições para a implementação noservidor.

>    (2) Ao implementar um servente para o RecordSet, como o tipo "Record" 
> só é utilizado no lado do cliente, o que devemos retornar?
Acho que os métodos definidos na interface IDL RecordSet devem retornar
referências para objetos CORBA do tipo Record (e não para o objeto servente, que
provavelmente estende RecordPOA). Eu fiz algo parecido com:

RecordImpl recordImpl = new RecordImpl(keyAttr);
byte[] oid = defaultPOA.activate_object(recordImpl);
org.omg.CORBA.Object objectRef = defaultPOA.id_to_reference(oid);
return RecordHelper.narrow(objectRef);

Ou isso pode ser feito de maneira mais curta:

RecordImpl recordImpl = new RecordImpl(keyAttr);
return recordImpl._this_object(orb);

Mas dai acho que seu servente vai ser registrado com o root POA.

Espero ter ajudado. Abracos.

Ivan Neto <ivanneto@ime.usp.br>