-IOR:000000000000001049444c3a656a656d706c6f3a312e3000000000010000000000000082000102000000000a3132372e302e302e31008f3700000031afabcb00000000206830646600000001000000000000000100000008526f6f74504f410000000008000000010000000014000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002
+IOR:000000000000002049444c3a73756261737461732f676573746f7253756261737461733a312e3000000000010000000000000082000102000000000a3132372e302e302e3100b8b100000031afabcb00000000207825a4e300000001000000000000000100000008526f6f74504f410000000008000000010000000014000000000000020000000100000020000000000001000100000002050100010001002000010109000000010001010000000026000000020002
--- /dev/null
+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]);
+ }
+ }
+ }
+ }
+
+}
--- /dev/null
+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();
+ }
+
+}
descripcion = desc;
}
- public void abrirSubasta() {
- if(estado.equals("Inscripcion"))
+ synchronized public void abrirSubasta() {
+ if(estado.equals("Inscripcion")){
estado = "Abierta";
+ notifyAll();
+ }
}
public clienteSubastas[] clientes() {
}
- public void ultimaPuja(clienteSubastas cl) {
+ synchronized public void ultimaPuja(clienteSubastas cl) {
if (clientes.contains(cl)){
clientes.remove(cl);
}
if (clientes.size() == 0) {
estado = "Cerrada";
+ notifyAll();
}
}
public class gestorSubastasImpl extends gestorSubastasPOA {
private Vector<coordinadorSubasta> subastas;
- private ORB orb;
+
private POA poa;
- public gestorSubastasImpl() {
+ public gestorSubastasImpl(POA arg_poa) {
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) {