Resueltos los dos problemas comentados en el guión. Ahora se informa a
authordanigm <danigm@arch_box>
Thu, 12 Jun 2008 18:10:58 +0000 (20:10 +0200)
committerdanigm <danigm@arch_box>
Thu, 12 Jun 2008 18:10:58 +0000 (20:10 +0200)
los clientes de que se actualiza el valor y además las subastas se
cierran automaticamente por tiempo.

29 files changed:
server.ior
src/subastas.idl
src/subastas/Cliente.java
src/subastas/SubastaKiller.java [new file with mode: 0644]
src/subastas/_clienteSubastasStub.java
src/subastas/_coordinadorSubastaStub.java
src/subastas/_gestorSubastasStub.java
src/subastas/clienteSubastas.java
src/subastas/clienteSubastasHelper.java
src/subastas/clienteSubastasHolder.java
src/subastas/clienteSubastasImpl.java
src/subastas/clienteSubastasOperations.java
src/subastas/clienteSubastasPOA.java
src/subastas/coordinadorSubasta.java
src/subastas/coordinadorSubastaHelper.java
src/subastas/coordinadorSubastaHolder.java
src/subastas/coordinadorSubastaImpl.java
src/subastas/coordinadorSubastaOperations.java
src/subastas/coordinadorSubastaPOA.java
src/subastas/gestorSubastas.java
src/subastas/gestorSubastasHelper.java
src/subastas/gestorSubastasHolder.java
src/subastas/gestorSubastasImpl.java
src/subastas/gestorSubastasOperations.java
src/subastas/gestorSubastasPOA.java
src/subastas/lista_clientesHelper.java
src/subastas/lista_clientesHolder.java
src/subastas/lista_subastasHelper.java
src/subastas/lista_subastasHolder.java

index 0fcf032..8925006 100644 (file)
@@ -1 +1 @@
-IOR:000000000000002049444c3a73756261737461732f676573746f7253756261737461733a312e3000000000010000000000000082000102000000000a3132372e302e302e3100d0e000000031afabcb00000000207a9f21aa00000001000000000000000100000008526f6f74504f410000000008000000010000000014000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002
+IOR:000000000000002049444c3a73756261737461732f676573746f7253756261737461733a312e3000000000010000000000000082000102000000000a3132372e302e302e3100932c00000031afabcb00000000207de0a02b00000001000000000000000100000008526f6f74504f410000000008000000010000000014000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002
index 2b63ac3..b3f8563 100644 (file)
@@ -4,6 +4,7 @@ module subastas{
     interface clienteSubastas{
         readonly attribute string identificacion;
         void finSubasta();
+        void nuevoValor(in float valor);
     };
 
     typedef sequence<clienteSubastas> lista_clientes;
@@ -32,11 +33,12 @@ module subastas{
         boolean pujar(in float cantidad, in clienteSubastas cl);
         void ultimaPuja(in clienteSubastas cl);
         clienteSubastas ganador();
+        void cerrarSubasta();
     };
 
     typedef sequence<coordinadorSubasta> lista_subastas;
     interface gestorSubastas{
-        coordinadorSubasta crearSubasta(in float valor, in string desc);
+        coordinadorSubasta crearSubasta(in float valor, in string desc, in long tiempo);
         void destruirSubasta(in coordinadorSubasta cs);
         lista_subastas localizarSubasta(in string palabra);
     };
index 87df399..89f111b 100644 (file)
@@ -66,7 +66,7 @@ public class Cliente {
                 * GESTOR SUBASTAS
                 * ---------------
                 * salir -> sale del bucle
-                * crear valor desc -> crea una subasta
+                * crear valor tiempo desc -> crea una subasta
                 * buscar desc -> busca una subasta y muestra todas las coincidencias
                 * borrar id -> borra una subasta si esta cerrada
                 * 
@@ -112,11 +112,13 @@ public class Cliente {
                        else if(partesDelComando[0].equals("crear")){
                                String desc = "";
                                float valor = 0;
+                               int time = 0;
                                valor = Float.valueOf(partesDelComando[1]);
-                               for(int i=2; i<partesDelComando.length; i++){
+                               time = Integer.valueOf(partesDelComando[2]);
+                               for(int i=3; i<partesDelComando.length; i++){
                                        desc += " "+partesDelComando[i];
                                }
-                               coordinadorSubasta cs = gs.crearSubasta(valor, desc);
+                               coordinadorSubasta cs = gs.crearSubasta(valor, desc, time);
                                System.out.println("Subasta creada");
                        }
                        else if(partesDelComando[0].equals("buscar")){
diff --git a/src/subastas/SubastaKiller.java b/src/subastas/SubastaKiller.java
new file mode 100644 (file)
index 0000000..2b255f3
--- /dev/null
@@ -0,0 +1,27 @@
+package subastas;
+
+public class SubastaKiller implements Runnable{
+
+       private Thread hilo;
+       private long time;
+       private coordinadorSubasta cs;
+       
+       public SubastaKiller(coordinadorSubasta cs, int time){
+               hilo = new Thread(this);
+               this.time = time*1000;
+               this.cs = cs;
+               hilo.start();
+       }
+       
+       public void run() {
+               try {
+                       hilo.sleep(time);
+               } catch (InterruptedException e) {
+                       e.printStackTrace();
+               }
+               cs.cerrarSubasta();
+               
+       }
+       
+
+}
index 2fb3cb6..6778371 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/_clienteSubastasStub.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public class _clienteSubastasStub extends org.omg.CORBA.portable.ObjectImpl implements subastas.clienteSubastas
@@ -48,6 +48,25 @@ public class _clienteSubastasStub extends org.omg.CORBA.portable.ObjectImpl impl
             }
   } // finSubasta
 
+  public void nuevoValor (float valor)
+  {
+            org.omg.CORBA.portable.InputStream $in = null;
+            try {
+                org.omg.CORBA.portable.OutputStream $out = _request ("nuevoValor", true);
+                $out.write_float (valor);
+                $in = _invoke ($out);
+                return;
+            } catch (org.omg.CORBA.portable.ApplicationException $ex) {
+                $in = $ex.getInputStream ();
+                String _id = $ex.getId ();
+                throw new org.omg.CORBA.MARSHAL (_id);
+            } catch (org.omg.CORBA.portable.RemarshalException $rm) {
+                nuevoValor (valor        );
+            } finally {
+                _releaseReply ($in);
+            }
+  } // nuevoValor
+
   // Type-specific CORBA::Object operations
   private static String[] __ids = {
     "IDL:subastas/clienteSubastas:1.0"};
index 86e276d..9883f46 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/_coordinadorSubastaStub.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public class _coordinadorSubastaStub extends org.omg.CORBA.portable.ObjectImpl implements subastas.coordinadorSubasta
@@ -215,6 +215,24 @@ public class _coordinadorSubastaStub extends org.omg.CORBA.portable.ObjectImpl i
             }
   } // ganador
 
+  public void cerrarSubasta ()
+  {
+            org.omg.CORBA.portable.InputStream $in = null;
+            try {
+                org.omg.CORBA.portable.OutputStream $out = _request ("cerrarSubasta", true);
+                $in = _invoke ($out);
+                return;
+            } catch (org.omg.CORBA.portable.ApplicationException $ex) {
+                $in = $ex.getInputStream ();
+                String _id = $ex.getId ();
+                throw new org.omg.CORBA.MARSHAL (_id);
+            } catch (org.omg.CORBA.portable.RemarshalException $rm) {
+                cerrarSubasta (        );
+            } finally {
+                _releaseReply ($in);
+            }
+  } // cerrarSubasta
+
   // Type-specific CORBA::Object operations
   private static String[] __ids = {
     "IDL:subastas/coordinadorSubasta:1.0"};
index 1a3213c..b68ac3a 100644 (file)
@@ -5,19 +5,20 @@ package subastas;
 * subastas/_gestorSubastasStub.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public class _gestorSubastasStub extends org.omg.CORBA.portable.ObjectImpl implements subastas.gestorSubastas
 {
 
-  public subastas.coordinadorSubasta crearSubasta (float valor, String desc)
+  public subastas.coordinadorSubasta crearSubasta (float valor, String desc, int tiempo)
   {
             org.omg.CORBA.portable.InputStream $in = null;
             try {
                 org.omg.CORBA.portable.OutputStream $out = _request ("crearSubasta", true);
                 $out.write_float (valor);
                 $out.write_string (desc);
+                $out.write_long (tiempo);
                 $in = _invoke ($out);
                 subastas.coordinadorSubasta $result = subastas.coordinadorSubastaHelper.read ($in);
                 return $result;
@@ -26,7 +27,7 @@ public class _gestorSubastasStub extends org.omg.CORBA.portable.ObjectImpl imple
                 String _id = $ex.getId ();
                 throw new org.omg.CORBA.MARSHAL (_id);
             } catch (org.omg.CORBA.portable.RemarshalException $rm) {
-                return crearSubasta (valor, desc        );
+                return crearSubasta (valor, desc, tiempo        );
             } finally {
                 _releaseReply ($in);
             }
index 95a5713..7803408 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/clienteSubastas.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public interface clienteSubastas extends clienteSubastasOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity 
index e59e280..9f6a81d 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/clienteSubastasHelper.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 abstract public class clienteSubastasHelper
index 8af76c4..1b6690a 100644 (file)
@@ -4,7 +4,7 @@ package subastas;
 * subastas/clienteSubastasHolder.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public final class clienteSubastasHolder implements org.omg.CORBA.portable.Streamable
index b144747..310a807 100644 (file)
@@ -7,6 +7,7 @@ package subastas;
 public class clienteSubastasImpl extends clienteSubastasPOA {
        private String identificacion;
        private boolean fin=false;
+       private float valor_subasta=0;
        public clienteSubastasImpl(String id) {
                super();
                identificacion = id;
@@ -20,4 +21,9 @@ public class clienteSubastasImpl extends clienteSubastasPOA {
                return identificacion;
        }
 
+       public void nuevoValor(float valor) {
+               valor_subasta = valor;
+               System.out.println("NUEVO VALOR " + valor);
+       }
+
 }
index d33a4c8..fb60368 100644 (file)
@@ -5,11 +5,12 @@ package subastas;
 * subastas/clienteSubastasOperations.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public interface clienteSubastasOperations 
 {
   String identificacion ();
   void finSubasta ();
+  void nuevoValor (float valor);
 } // interface clienteSubastasOperations
index 31b0d4b..d97b5df 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/clienteSubastasPOA.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public abstract class clienteSubastasPOA extends org.omg.PortableServer.Servant
@@ -19,6 +19,7 @@ public abstract class clienteSubastasPOA extends org.omg.PortableServer.Servant
   {
     _methods.put ("_get_identificacion", new java.lang.Integer (0));
     _methods.put ("finSubasta", new java.lang.Integer (1));
+    _methods.put ("nuevoValor", new java.lang.Integer (2));
   }
 
   public org.omg.CORBA.portable.OutputStream _invoke (String $method,
@@ -48,6 +49,14 @@ public abstract class clienteSubastasPOA extends org.omg.PortableServer.Servant
          break;
        }
 
+       case 2:  // subastas/clienteSubastas/nuevoValor
+       {
+         float valor = in.read_float ();
+         this.nuevoValor (valor);
+         out = $rh.createReply();
+         break;
+       }
+
        default:
          throw new org.omg.CORBA.BAD_OPERATION (0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
     }
index 15a02b9..a980a59 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/coordinadorSubasta.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public interface coordinadorSubasta extends coordinadorSubastaOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity 
index 53bff2d..bca8f26 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/coordinadorSubastaHelper.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 abstract public class coordinadorSubastaHelper
index 40c5ac5..7b4f3c9 100644 (file)
@@ -4,7 +4,7 @@ package subastas;
 * subastas/coordinadorSubastaHolder.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public final class coordinadorSubastaHolder implements org.omg.CORBA.portable.Streamable
index 0b78d7e..f90907d 100644 (file)
@@ -84,6 +84,8 @@ public class coordinadorSubastaImpl extends coordinadorSubastaPOA {
                 if (cantidad > valor){
                     valor = cantidad;
                     ganador_provisional = cl;
+                    for (int i=0; i<clientes.size(); i++)
+                       clientes.get(i).nuevoValor(valor);
                     return true;
                 }
                 else
@@ -111,4 +113,9 @@ public class coordinadorSubastaImpl extends coordinadorSubastaPOA {
                return valor;
        }
 
+       synchronized public void cerrarSubasta() {
+               estado = "Cerrada";
+               notifyAll();
+       }
+
 }
index 6485bef..ee6aef5 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/coordinadorSubastaOperations.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public interface coordinadorSubastaOperations 
@@ -33,4 +33,5 @@ public interface coordinadorSubastaOperations
   boolean pujar (float cantidad, subastas.clienteSubastas cl);
   void ultimaPuja (subastas.clienteSubastas cl);
   subastas.clienteSubastas ganador ();
+  void cerrarSubasta ();
 } // interface coordinadorSubastaOperations
index 9ad2110..0dba9fa 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/coordinadorSubastaPOA.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public abstract class coordinadorSubastaPOA extends org.omg.PortableServer.Servant
@@ -27,6 +27,7 @@ public abstract class coordinadorSubastaPOA extends org.omg.PortableServer.Serva
     _methods.put ("pujar", new java.lang.Integer (7));
     _methods.put ("ultimaPuja", new java.lang.Integer (8));
     _methods.put ("ganador", new java.lang.Integer (9));
+    _methods.put ("cerrarSubasta", new java.lang.Integer (10));
   }
 
   public org.omg.CORBA.portable.OutputStream _invoke (String $method,
@@ -141,6 +142,13 @@ public abstract class coordinadorSubastaPOA extends org.omg.PortableServer.Serva
          break;
        }
 
+       case 10:  // subastas/coordinadorSubasta/cerrarSubasta
+       {
+         this.cerrarSubasta ();
+         out = $rh.createReply();
+         break;
+       }
+
        default:
          throw new org.omg.CORBA.BAD_OPERATION (0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
     }
index 5762df2..816ce91 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/gestorSubastas.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public interface gestorSubastas extends gestorSubastasOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity 
index bba39f6..f883a1c 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/gestorSubastasHelper.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 abstract public class gestorSubastasHelper
index d887a90..3d6d531 100644 (file)
@@ -4,7 +4,7 @@ package subastas;
 * subastas/gestorSubastasHolder.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public final class gestorSubastasHolder implements org.omg.CORBA.portable.Streamable
index 37fda06..aa2bf35 100644 (file)
@@ -27,7 +27,7 @@ public class gestorSubastasImpl extends gestorSubastasPOA {
         poa = arg_poa;
        }
 
-       public coordinadorSubasta crearSubasta(float valor, String desc) {
+       public coordinadorSubasta crearSubasta(float valor, String desc, int tiempo) {
                coordinadorSubasta c = null;
         coordinadorSubastaImpl coord = new coordinadorSubastaImpl(valor, desc);
         org.omg.CORBA.Object obj;
@@ -42,6 +42,7 @@ public class gestorSubastasImpl extends gestorSubastasPOA {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
+               SubastaKiller sk = new SubastaKiller(c, tiempo);
                
         return c;
        }
index bd915cf..3f3d0a1 100644 (file)
@@ -5,12 +5,12 @@ package subastas;
 * subastas/gestorSubastasOperations.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public interface gestorSubastasOperations 
 {
-  subastas.coordinadorSubasta crearSubasta (float valor, String desc);
+  subastas.coordinadorSubasta crearSubasta (float valor, String desc, int tiempo);
   void destruirSubasta (subastas.coordinadorSubasta cs);
   subastas.coordinadorSubasta[] localizarSubasta (String palabra);
 } // interface gestorSubastasOperations
index 5ce7542..b0b048d 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/gestorSubastasPOA.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public abstract class gestorSubastasPOA extends org.omg.PortableServer.Servant
@@ -37,8 +37,9 @@ public abstract class gestorSubastasPOA extends org.omg.PortableServer.Servant
        {
          float valor = in.read_float ();
          String desc = in.read_string ();
+         int tiempo = in.read_long ();
          subastas.coordinadorSubasta $result = null;
-         $result = this.crearSubasta (valor, desc);
+         $result = this.crearSubasta (valor, desc, tiempo);
          out = $rh.createReply();
          subastas.coordinadorSubastaHelper.write (out, $result);
          break;
index 8d71256..4ac16b6 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/lista_clientesHelper.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 abstract public class lista_clientesHelper
index 72c4dff..7c67588 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/lista_clientesHolder.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public final class lista_clientesHolder implements org.omg.CORBA.portable.Streamable
index 78e0472..36d596a 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/lista_subastasHelper.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 abstract public class lista_subastasHelper
index 8ab4029..6f6664d 100644 (file)
@@ -5,7 +5,7 @@ package subastas;
 * subastas/lista_subastasHolder.java .
 * Generated by the IDL-to-Java compiler (portable), version "3.2"
 * from subastas.idl
-* domingo 8 de junio de 2008 19H22' CEST
+* jueves 12 de junio de 2008 18H33' CEST
 */
 
 public final class lista_subastasHolder implements org.omg.CORBA.portable.Streamable