Creado el Servidor de gestorSubastas
authordanigm <danigm@arch_box>
Wed, 11 Jun 2008 16:56:02 +0000 (18:56 +0200)
committerdanigm <danigm@arch_box>
Wed, 11 Jun 2008 16:56:02 +0000 (18:56 +0200)
Iniciado el Cliente unificado

server.ior
src/subastas/Cliente.java [new file with mode: 0644]
src/subastas/Servidor.java [new file with mode: 0644]
src/subastas/coordinadorSubastaImpl.java
src/subastas/gestorSubastasImpl.java

index 31e9eb1..af1e22e 100644 (file)
@@ -1 +1 @@
-IOR:000000000000001049444c3a656a656d706c6f3a312e3000000000010000000000000082000102000000000a3132372e302e302e31008f3700000031afabcb00000000206830646600000001000000000000000100000008526f6f74504f410000000008000000010000000014000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002
+IOR:000000000000002049444c3a73756261737461732f676573746f7253756261737461733a312e3000000000010000000000000082000102000000000a3132372e302e302e3100b8b100000031afabcb00000000207825a4e300000001000000000000000100000008526f6f74504f410000000008000000010000000014000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002
diff --git a/src/subastas/Cliente.java b/src/subastas/Cliente.java
new file mode 100644 (file)
index 0000000..41cf137
--- /dev/null
@@ -0,0 +1,71 @@
+package subastas;
+
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+
+import org.omg.CORBA.*;
+
+public class Cliente {
+
+       /**
+        * @param args
+        * @throws IOException 
+        */
+       public static void main(String[] args) throws IOException {
+               ORB orb = ORB.init(args, null);
+               
+               LineNumberReader input = new LineNumberReader(new FileReader("server.ior"));
+               String ior = input.readLine();
+               
+               org.omg.CORBA.Object obj = orb.string_to_object(ior);
+               
+               gestorSubastas gs = gestorSubastasHelper.narrow(obj);
+               
+               
+               //usando el objecto gs
+               coordinadorSubasta cs = gs.crearSubasta((float)10.0, "clip rojo");
+               System.out.println(cs.valor());
+               System.out.println(cs.descripcion());
+               System.out.println(cs.estado());
+
+               clienteSubastas cl1 = new clienteSubastas("cliente1");
+               clienteSubastas cl2 = new clienteSubastas("cliente2");
+               cs.inscribirCliente(cl1);
+               cs.inscribirCliente(cl2);
+               
+               cs.abrirSubasta();
+               //deberia estar abierto
+               System.out.println(cs.estado());
+               cs.pujar(21, cl1);
+               if(cs.pujar(20, cl2)){
+                       System.out.println(cl2.identificacion() + ": mi puja es más alta");
+               }
+               cs.ultimaPuja(cl2);
+               cs.ultimaPuja(cl1);
+               System.out.println(cs.ganador().identificacion());
+               
+               boolean salir = false;
+               String comando = "";
+               while(!salir){
+                       try{
+                               BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
+                               comando = br.readLine();
+                               }catch(Exception e){ e.printStackTrace();} 
+                       if(comando.equals("salir")){
+                               salir = true;
+                               break;
+                       }
+                       else if(comando.contains("crear")){
+                               String[] partesDelComando = comando.split(" ");
+                               for(int i=0; i<partesDelComando.length; i++){
+                                       System.out.println(partesDelComando[i]);
+                               }
+                       }
+               }
+       }
+
+}
diff --git a/src/subastas/Servidor.java b/src/subastas/Servidor.java
new file mode 100644 (file)
index 0000000..fde5988
--- /dev/null
@@ -0,0 +1,45 @@
+package subastas;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintWriter;
+
+import org.omg.CORBA.*;
+import org.omg.CORBA.ORBPackage.InvalidName;
+import org.omg.PortableServer.*;
+import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
+import org.omg.PortableServer.POAPackage.ServantNotActive;
+import org.omg.PortableServer.POAPackage.WrongPolicy;
+
+public class Servidor {
+
+       /**
+        * @param args
+        * @throws InvalidName 
+        * @throws AdapterInactive 
+        * @throws WrongPolicy 
+        * @throws ServantNotActive 
+        * @throws FileNotFoundException 
+        */
+       public static void main(String[] args) throws InvalidName, AdapterInactive, ServantNotActive, WrongPolicy, FileNotFoundException {
+        //inicializacion del orb
+        ORB orb = ORB.init(args, null);
+
+        //creacion del poa raiz
+        POA poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
+
+        //crear y activar sirvientes
+        poa.the_POAManager().activate();
+        gestorSubastasImpl sirviente = new gestorSubastasImpl(poa);
+        org.omg.CORBA.Object obj = poa.servant_to_reference(sirviente);
+
+        String ior = orb.object_to_string(obj);
+        PrintWriter ps = new PrintWriter(new FileOutputStream(new File("server.ior")));
+        ps.println(ior);
+        ps.close();
+
+        orb.run();
+       }
+
+}
index ee70836..d94f05a 100644 (file)
@@ -22,9 +22,11 @@ public class coordinadorSubastaImpl extends coordinadorSubastaPOA {
         descripcion = desc;
        }
 
         descripcion = desc;
        }
 
-       public void abrirSubasta() {
-        if(estado.equals("Inscripcion"))
+       synchronized public void abrirSubasta() {
+        if(estado.equals("Inscripcion")){
             estado = "Abierta";
             estado = "Abierta";
+            notifyAll();
+        }
        }
 
        public clienteSubastas[] clientes() {
        }
 
        public clienteSubastas[] clientes() {
@@ -91,12 +93,13 @@ public class coordinadorSubastaImpl extends coordinadorSubastaPOA {
 
        }
 
 
        }
 
-       public void ultimaPuja(clienteSubastas cl) {
+       synchronized public void ultimaPuja(clienteSubastas cl) {
         if (clientes.contains(cl)){
             clientes.remove(cl);
         }
         if (clientes.size() == 0) {
             estado = "Cerrada";
         if (clientes.contains(cl)){
             clientes.remove(cl);
         }
         if (clientes.size() == 0) {
             estado = "Cerrada";
+            notifyAll();
         }
        }
 
         }
        }
 
index 0c5aa8c..5e51765 100644 (file)
@@ -19,31 +19,12 @@ import org.omg.PortableServer.POAPackage.WrongPolicy;
 public class gestorSubastasImpl extends gestorSubastasPOA {
 
     private Vector<coordinadorSubasta> subastas;
 public class gestorSubastasImpl extends gestorSubastasPOA {
 
     private Vector<coordinadorSubasta> subastas;
-    private ORB orb;
+    
     private POA poa;
     private POA poa;
-       public gestorSubastasImpl() {
+       public gestorSubastasImpl(POA arg_poa) {
         super();
         subastas = new Vector<coordinadorSubasta>();
         super();
         subastas = new Vector<coordinadorSubasta>();
-
-        //inicializacion del orb
-        orb = ORB.init();
-
-        //creacion del poa raiz
-        try {
-                       poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
-               } catch (InvalidName e) {
-                       // TODO Auto-generated catch block
-                       e.printStackTrace();
-               }
-
-        //crear y activar sirvientes
-        try {
-                       poa.the_POAManager().activate();
-               } catch (AdapterInactive e) {
-                       // TODO Auto-generated catch block
-                       e.printStackTrace();
-               }
-
+        poa = arg_poa;
        }
 
        public coordinadorSubasta crearSubasta(float valor, String desc) {
        }
 
        public coordinadorSubasta crearSubasta(float valor, String desc) {