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

RE: usando <sequence>s



Paulo Eduardo Azevedo Silveira writes:
 > 
 > oi pessoal
 > 
 > eu tenho algumas interfaces no meu modulo, uma delas eh a ChatRoom
 > 
 > tenho o metodo listRooms() que retorna uma ChatRoom<sequence>
 > 
 > No java, ele transforma isso para:
 >   ChatRoom[] listRooms();
 > 
 > Ate ai tudo bem. Mas eu tenho uma lista de ChatRoomImpl[]. que nao sao
 > ChatRoom, pois extendem ChatRoomPOA. A unica maneira que encontrei para
 > fazer essa conversao foi:
 > 
 > while (...) {
 >      temp[i] = ((ChatRoomImpl) iterator.next())._this();
 > }
 > 
 > Esse metodo ._this() resolveu, mas o que ele faz exatamente?^Outra coisa,
 > eu vi que ele criou umas classes ChatRoomArrayHelper, achei que la ia ter
 > algo que ajudasse a fazer essa conversao, mas nao tem.

Vamos la' (espero nao falar besteira). 

O metodo _this() registra o servente com o POA e devolve um apontador para o
Objeto CORBA resultante. Assim, voce deve chamar o _this só uma vez para cada
objeto ChatRoomImpl. Voce pode fazer isso, por exemplo, na operacao que cria
novos chat rooms. 

Toda vez que fizer uma chamada ao _this(), guarde o valor resultante no seu
ChatRoom[] listRooms() 
e dai' a sua operacao listRooms() pode simplesmente devolver esse vetor.

O que eu acho que voce nao deve fazer e' chamar o _this() dentro da operaca
listRooms()

[]s,
Fabio.