[Jde-dev] Interfaces ICE básicos. Problema con cliente/servidor
David Lobato
dav.lobato en gmail.com
Jue Nov 24 12:09:06 CET 2011
Pero puedes acceder al communicator ya inicializado
por jderobotice::Application. Para eso se pasa la instancia de Context [1]
a todos los elementos que quieren "jugar" con Ice.
Fijate que lo pasas en el constructor de DummyII
[1] http://svn.jderobot.org/jderobot/trunk/src/libs/jderobotice/context.h
2011/11/24 Julio Vega <julio.vega en urjc.es>
> ** Porque el objeto de Ice::Communicator se define usando esos
> parámetros. Y luego ese objeto se usa para crear el proxy mediante
> propertyToProxy.
>
>
> David Lobato <dav.lobato en gmail.com> escribió:
>>
>> 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/fa563ab1/attachment-0001.htm
More information about the Jde-developers
mailing list