[Jde-dev] Interfaces ICE básicos. Problema con cliente/servidor
Julio Vega
julio.vega en urjc.es
Jue Nov 24 11:07:56 CET 2011
Bueno, tras pelearme con dummyInTheMiddle para intentar adaptarlo a lo que comentaba David, sigo teniendo los mismos problemas:
- De algún modo he de pasar argc y argv a la clase DummyII para, por ejemplo, acceder al PropertyToProxy del Communicator.
- No es posible reservar el interfaz dummy2, que es de tipo abstracto, habiéndolo declarado como un Object genérico. Cualquier posibilidad humana hace que el compilador te diga que él está ahà :)
En resumen, joeer con Ice.
David Lobato <dav.lobato en gmail.com> escribió:
Julio,
Ups! No vi el enlace, perdón!
El dummyInTheMiddle es un buen lio... No entiendo que hace esa hebra por ahÃ. Ãndate con ojo a la hora de mezclar pthreads a pelo con Ice, a veces no funciona como se espera.
Según entiendo tu problema, lo que intentas hacer es algo tipo cache, que se pone entre medias de un servidor y un cliente, no?
Estoy un poco oxidado con ICE, pero creo que deberÃa ser algo como lo que te paso en el adjunto. Vamos, que el propio objeto tiene un proxy al servidor real, y en sus llamadas, según la lógica que tu tengas pensado, llama al servidor real.
Rober, lo pipes son muy útiles y todo lo que tu quieras, pero joder, ICE debe tener algún mecanismo para lidiar con esto. Además, usando pipes la solución no es portable, usando Ice si.
Saludetes!
2011/11/23 Roberto Calvo <rocapal en libresoft.es>
El mié, 23-11-2011 a las 16:05 +0000, David Lobato escribió:
> Julio,
>
>
> Por qué no pones el código con el que estás teniendo problemas?
> Sin entender el problema del todo, me parece que usar pipes es una
> solución un poco ñapis...
Verás como te escuchen NEMO y cia! Ahhh y los que programan UNIX ;-)
>
>
> Saludetes!
>
> 2011/11/23 Julio Vega <julio.vega en urjc.es>
> Eso que dices suena a solución :) me voy a poner a añadir eso
> y ya te cuento.
> Gracias Rober!
>
> Roberto Calvo <rocapal en libresoft.es> escribió:
>
> En ese mismo ejemplo, yo tuve un problema similar y
> puede que te ayude a
> ti. Lo resolvà usando pipes.
>
> Si miras "startRecording", hace de cliente, llama a un
> Recorder con un
> callback y espera leyendo el pipe. El callback [1],
> que hace de
> servidor, recibe la respuesta y escribe en el pipe.
>
> En este caso es sÃncrono, pero podrÃas hacerlo
> asÃncrono. PodrÃas probar
> quitando el thread que tienes, y metiéndolo en la
> clase servidora para
> que haga un read del pipe. En el main, cuando recibes
> el número haces el
> write en el pipe. Creo que eso deberÃa funcionarte.
>
> Un saludete!
>
> [1] class AMI_Recorder_startRecordingI : public
> jderobot::AMI_Recorder_startRecording
>
> El mié, 23-11-2011 a las 16:06 +0100, Julio Vega
> escribió:
> > Ya he estado ojeando el componente que me dices y
> sÃ, actúa como
> > cliente y servidor al mismo tiempo.
> > Ese problema lo tengo solucionado. El conflicto
> viene cuando lo que
> > quiero es que haga de cliente y además modifique lo
> que pilla como
> > cliente, y que sirva ese nuevo valor como
> servidor... No sé como pasar
> > ese valor, que es un float, dentro del componente
> hasta llegar a la
> > zona "servidora".
> >
> > Roberto Calvo <rocapal en libresoft.es> escribió:
> >
> > Julito,
> >
> > ¿Qué es lo que no te funciona, no te hace de
> cliente, o de servidor? O
> > nada de nada.
> >
> > Yo lo que puedo decirte es que el componente
> RecordingServer [1] hace de
> > servidor y de cliente (realiza peticiones al
> Recorder). Echale un ojo a
> > como configuro la Ice::Application (abajo
> del todo del fichero cpp), que
> > pueden ir por ahà los tiros.
> >
> > Un saludete!
> >
> > [1]
> >
> http://svn.jderobot.org/jderobot/trunk/src/components/recordingserver/
> >
> > El mar, 22-11-2011 a las 23:58 +0100, Julio
> Vega escribió:
> > > Hola developers,
> > >
> > > he creado unos componentes ICE en [1].
> Estos componentes son básicos,
> > > asà como el interfaz ICE creado. Tenemos
> lo siguiente:
> > > - dummyServer: ejemplo sencillo de
> "servidor"
> > ICE.
> > > - dummyClient: ejemplo sencillo de
> "cliente" ICE.
> > > - dummyInTheMiddle: ejemplo
> no-tan-sencillo de componente que hace de
> > > "cliente-servidor" ICE.
> > >
> > > El problema está en ese tercer
> componente. No logro hacer que
> > > funcione como cliente y como servidor al
> mismo tiempo. La idea es que
> > > tal componente sea cliente de
> "dummyServer" (del cual recibe un número)
> > > y, por ejemplo, modifique ese número para
> que "dummyClient" lo pille de
> > > aquà modificado.
> > > SÃ, ya sé que es un ejemplo tontorrón
> (de ahà el nombre), y quizás
> > > sin sentido. Pero obviamente el objetivo
> es otro componente mucho más
> > > complejo...
> > >
> > > Por favor, si alguien conoce algo más
> sobre ICE y puede echar un ojo
> > > a ese componente, a ver qué falla, se lo
> agradecerÃa.
> > >
> > > Saludos,
> > >
> > > Julio
> > >
> > > [
> > 1]
> http://svn.jderobot.org/robotvision/trunk/jmvegaProjects/basicICE
> > >
> >
> > --
> > Roberto Calvo Palomino | Libre
> Software Engineering Lab (GSyC)
> > Tel: (+34) 91 488 87 73 |
> Universidad Rey Juan Carlos
> > rocapal en libresoft.es | Edif.
> Biblioteca - Despacho B103
> > http://libresoft.es/ | Camino del
> Molino s/n - 28943 (Madrid)
> >
> > GPG-KEY:
> http://gsyc.es/~rocapal/rocapal.gpg
> >
> ______________________________________________________
>
>
> > Jde-developers mailing list
> > Jde-developers en gsyc.es
> >
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>
> --
> Roberto Calvo Palomino | Libre Software
> Engineering Lab (GSyC)
> Tel: (+34) 91 488 87 73 | Universidad Rey Juan
> Carlos
> rocapal en libresoft.es | Edif. Biblioteca -
> Despacho B103
> http://libresoft.es/ | Camino del Molino
> s/n - 28943 (Madrid)
>
> GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>
>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
--
Roberto Calvo Palomino | Libre Software Engineering Lab (GSyC)
Tel: (+34) 91 488 87 73 | Universidad Rey Juan Carlos
rocapal en libresoft.es | Edif. Biblioteca - Despacho B103
http://libresoft.es/ | Camino del Molino s/n - 28943 (Madrid)
GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20111124/a4773b0e/attachment-0001.htm
More information about the Jde-developers
mailing list