<meta http-equiv="content-type" content="text/html; charset=utf-8">Julio,<div><br></div><div>Ups! No vi el enlace, perdón!</div><div><br></div><div>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.</div>
<div>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?</div><div>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.</div>
<div><br></div><div>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.</div><div><br></div>
<div>Saludetes!</div><div><br></div><br><div class="gmail_quote">2011/11/23 Roberto Calvo <span dir="ltr">&lt;<a href="mailto:rocapal@libresoft.es">rocapal@libresoft.es</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
El mié, 23-11-2011 a las 16:05 +0000, David Lobato escribió:<br>
<div class="im">&gt; Julio,<br>
&gt;<br>
&gt;<br>
&gt; Por qué no pones el código con el que estás teniendo problemas?<br>
&gt; Sin entender el problema del todo, me parece que usar pipes es una<br>
&gt; solución un poco ñapis...<br>
<br>
</div>Verás como te escuchen NEMO y cia! Ahhh y los que programan UNIX ;-)<br>
<div><div class="h5"><br>
&gt;<br>
&gt;<br>
&gt; Saludetes!<br>
&gt;<br>
&gt; 2011/11/23 Julio Vega &lt;<a href="mailto:julio.vega@urjc.es">julio.vega@urjc.es</a>&gt;<br>
&gt;         Eso que dices suena a solución :) me voy a poner a añadir eso<br>
&gt;         y ya te cuento.<br>
&gt;         Gracias Rober!<br>
&gt;<br>
&gt;         Roberto Calvo &lt;<a href="mailto:rocapal@libresoft.es">rocapal@libresoft.es</a>&gt; escribió:<br>
&gt;<br>
&gt;                 En ese mismo ejemplo, yo tuve un problema similar y<br>
&gt;                 puede que te ayude a<br>
&gt;                 ti. Lo resolví usando pipes.<br>
&gt;<br>
&gt;                 Si miras &quot;startRecording&quot;, hace de cliente, llama a un<br>
&gt;                 Recorder con un<br>
&gt;                 callback y espera leyendo el pipe. El callback [1],<br>
&gt;                 que hace de<br>
&gt;                 servidor, recibe la respuesta y escribe en el pipe.<br>
&gt;<br>
&gt;                 En este caso es síncrono, pero podrías hacerlo<br>
&gt;                 asíncrono. Podrías probar<br>
&gt;                 quitando el thread que tienes, y metiéndolo en la<br>
&gt;                 clase servidora para<br>
&gt;                 que haga un read del pipe. En el main, cuando recibes<br>
&gt;                 el número haces el<br>
&gt;                 write en el pipe. Creo que eso debería funcionarte.<br>
&gt;<br>
&gt;                 Un saludete!<br>
&gt;<br>
&gt;                 [1] class AMI_Recorder_startRecordingI : public<br>
&gt;                 jderobot::AMI_Recorder_startRecording<br>
&gt;<br>
&gt;                 El mié, 23-11-2011 a las 16:06 +0100, Julio Vega<br>
&gt;                 escribió:<br>
&gt;                 &gt; Ya he estado ojeando el componente que me dices y<br>
&gt;                 sí, actúa como<br>
&gt;                 &gt; cliente y servidor al mismo tiempo.<br>
&gt;                 &gt; Ese problema lo tengo solucionado. El conflicto<br>
&gt;                 viene cuando lo que<br>
&gt;                 &gt; quiero es que haga de cliente y además modifique lo<br>
&gt;                 que pilla como<br>
&gt;                 &gt; cliente, y que sirva ese nuevo valor como<br>
&gt;                 servidor... No sé como pasar<br>
&gt;                 &gt; ese valor, que es un float, dentro del componente<br>
&gt;                 hasta llegar a la<br>
&gt;                 &gt; zona &quot;servidora&quot;.<br>
&gt;                 &gt;<br>
&gt;                 &gt; Roberto Calvo &lt;<a href="mailto:rocapal@libresoft.es">rocapal@libresoft.es</a>&gt; escribió:<br>
&gt;                 &gt;<br>
&gt;                 &gt;         Julito,<br>
&gt;                 &gt;<br>
&gt;                 &gt;         ¿Qué es lo que no te funciona, no te hace de<br>
&gt;                 cliente, o de servidor? O<br>
&gt;                 &gt;         nada de nada.<br>
&gt;                 &gt;<br>
&gt;                 &gt;         Yo lo que puedo decirte es que el componente<br>
&gt;                 RecordingServer [1] hace de<br>
&gt;                 &gt;         servidor y de cliente (realiza peticiones al<br>
&gt;                 Recorder). Echale un ojo a<br>
&gt;                 &gt;         como configuro la Ice::Application (abajo<br>
&gt;                 del todo del fichero cpp), que<br>
&gt;                 &gt;         pueden ir por ahí los tiros.<br>
&gt;                 &gt;<br>
&gt;                 &gt;         Un saludete!<br>
&gt;                 &gt;<br>
&gt;                 &gt;         [1]<br>
&gt;                 &gt;<br>
&gt;                 <a href="http://svn.jderobot.org/jderobot/trunk/src/components/recordingserver/" target="_blank">http://svn.jderobot.org/jderobot/trunk/src/components/recordingserver/</a><br>
&gt;                 &gt;<br>
&gt;                 &gt;         El mar, 22-11-2011 a las 23:58 +0100, Julio<br>
&gt;                 Vega escribió:<br>
&gt;                 &gt;         &gt; Hola developers,<br>
&gt;                 &gt;         &gt;<br>
&gt;                 &gt;         &gt;    he creado unos componentes ICE en [1].<br>
&gt;                 Estos componentes son básicos,<br>
&gt;                 &gt;         &gt; así como el interfaz ICE creado. Tenemos<br>
&gt;                 lo siguiente:<br>
&gt;                 &gt;         &gt;    - dummyServer: ejemplo sencillo de<br>
&gt;                 &quot;servidor&quot;<br>
&gt;                 &gt;         ICE.<br>
&gt;                 &gt;         &gt;    - dummyClient: ejemplo sencillo de<br>
&gt;                 &quot;cliente&quot; ICE.<br>
&gt;                 &gt;         &gt;    - dummyInTheMiddle: ejemplo<br>
&gt;                 no-tan-sencillo de componente que hace de<br>
&gt;                 &gt;         &gt; &quot;cliente-servidor&quot; ICE.<br>
&gt;                 &gt;         &gt;<br>
&gt;                 &gt;         &gt;    El problema está en ese tercer<br>
&gt;                 componente. No logro hacer que<br>
&gt;                 &gt;         &gt; funcione como cliente y como servidor al<br>
&gt;                 mismo tiempo. La idea es que<br>
&gt;                 &gt;         &gt; tal componente sea cliente de<br>
&gt;                 &quot;dummyServer&quot; (del cual recibe un número)<br>
&gt;                 &gt;         &gt; y, por ejemplo, modifique ese número para<br>
&gt;                 que &quot;dummyClient&quot; lo pille de<br>
&gt;                 &gt;         &gt; aquí modificado.<br>
&gt;                 &gt;         &gt;    Sí, ya sé que es un ejemplo tontorrón<br>
&gt;                 (de ahí el nombre), y quizás<br>
&gt;                 &gt;         &gt; sin sentido. Pero obviamente el objetivo<br>
&gt;                 es otro componente mucho más<br>
&gt;                 &gt;         &gt; complejo...<br>
&gt;                 &gt;         &gt;<br>
&gt;                 &gt;         &gt;    Por favor, si alguien conoce algo más<br>
&gt;                 sobre ICE y puede echar un ojo<br>
&gt;                 &gt;         &gt; a ese componente, a ver qué falla, se lo<br>
&gt;                 agradecería.<br>
&gt;                 &gt;         &gt;<br>
&gt;                 &gt;         &gt;    Saludos,<br>
&gt;                 &gt;         &gt;<br>
&gt;                 &gt;         &gt;    Julio<br>
&gt;                 &gt;         &gt;<br>
&gt;                 &gt;         &gt;    [<br>
&gt;                 &gt;          1]<br>
&gt;                 <a href="http://svn.jderobot.org/robotvision/trunk/jmvegaProjects/basicICE" target="_blank">http://svn.jderobot.org/robotvision/trunk/jmvegaProjects/basicICE</a><br>
&gt;                 &gt;         &gt;<br>
&gt;                 &gt;<br>
&gt;                 &gt;         --<br>
&gt;                 &gt;         Roberto Calvo Palomino          | Libre<br>
&gt;                 Software Engineering Lab (GSyC)<br>
&gt;                 &gt;         Tel: <a href="tel:%28%2B34%29%2091%20488%2087%2073" value="+34914888773">(+34) 91 488 87 73</a>         |<br>
&gt;                 Universidad Rey Juan Carlos<br>
&gt;                 &gt;         <a href="mailto:rocapal@libresoft.es">rocapal@libresoft.es</a>            | Edif.<br>
&gt;                 Biblioteca - Despacho B103<br>
&gt;                 &gt;         <a href="http://libresoft.es/" target="_blank">http://libresoft.es/</a>            | Camino del<br>
&gt;                 Molino s/n - 28943  (Madrid)<br>
&gt;                 &gt;<br>
&gt;                 &gt;         GPG-KEY:<br>
&gt;                 <a href="http://gsyc.es/~rocapal/rocapal.gpg" target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
&gt;                 &gt;<br>
</div></div>&gt;                 ______________________________________________________<br>
<div class="HOEnZb"><div class="h5">&gt;<br>
&gt;<br>
&gt;                 &gt; Jde-developers mailing list<br>
&gt;                 &gt; <a href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a><br>
&gt;                 &gt;<br>
&gt;                 <a href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers" target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
&gt;<br>
&gt;                 --<br>
&gt;                 Roberto Calvo Palomino          | Libre Software<br>
&gt;                 Engineering Lab (GSyC)<br>
&gt;                 Tel: <a href="tel:%28%2B34%29%2091%20488%2087%2073" value="+34914888773">(+34) 91 488 87 73</a>         | Universidad Rey Juan<br>
&gt;                 Carlos<br>
&gt;                 <a href="mailto:rocapal@libresoft.es">rocapal@libresoft.es</a>            | Edif. Biblioteca -<br>
&gt;                 Despacho B103<br>
&gt;                 <a href="http://libresoft.es/" target="_blank">http://libresoft.es/</a>            | Camino del Molino<br>
&gt;                 s/n - 28943  (Madrid)<br>
&gt;<br>
&gt;                 GPG-KEY: <a href="http://gsyc.es/~rocapal/rocapal.gpg" target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
&gt;<br>
&gt;<br>
&gt;         _______________________________________________<br>
&gt;         Jde-developers mailing list<br>
&gt;         <a href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a><br>
&gt;         <a href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers" target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Jde-developers mailing list<br>
&gt; <a href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a><br>
&gt; <a href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers" target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
<br>
--<br>
Roberto Calvo Palomino          | Libre Software Engineering Lab (GSyC)<br>
Tel: <a href="tel:%28%2B34%29%2091%20488%2087%2073" value="+34914888773">(+34) 91 488 87 73</a>         | Universidad Rey Juan Carlos<br>
<a href="mailto:rocapal@libresoft.es">rocapal@libresoft.es</a>            | Edif. Biblioteca - Despacho B103<br>
<a href="http://libresoft.es/" target="_blank">http://libresoft.es/</a>            | Camino del Molino s/n - 28943  (Madrid)<br>
<br>
GPG-KEY: <a href="http://gsyc.es/~rocapal/rocapal.gpg" target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
</div></div></blockquote></div><br>