[Jde-dev] Interfaces ICE básicos. Problema con cliente/servidor
David Lobato
dav.lobato en gmail.com
Jue Nov 24 11:52:35 CET 2011
Julio,
No veo los problemas...
1. Para que necesitas argc y argv exactamente?
2. En el servidor normal declaras DummyI de la misma manera, no?
2011/11/24 Julio Vega <julio.vega en urjc.es>
> ** 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/8c5b3405/attachment-0001.htm
More information about the Jde-developers
mailing list