[Javanetsim-cvs] javaNetSim/core WANCorba.idl, NONE, 1.1 WANCorba.java, NONE, 1.1 WANCorbaHelper.ja
Status: Beta
Brought to you by:
darkkey
From: Alexander B. <da...@us...> - 2007-11-10 13:25:44
|
Update of /cvsroot/javanetsim/javaNetSim/core In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv7891/core Modified Files: LayerInfoHandler.java WANNetworkInterface.java WANRMI.java WANRMIServer.java WANSocket.java Added Files: WANCorba.idl WANCorba.java WANCorbaHelper.java WANCorbaHolder.java WANCorbaOperations.java WANCorbaPOA.java WANCorbaServer.java _WANCorbaStub.java Log Message: Fixed critical section in LayerInfo, CORBA mechanisms templates... --- NEW FILE: WANCorbaOperations.java --- package core; /** * core/WANCorbaOperations.java . * Generated by the IDL-to-Java compiler (portable), version "3.2" * from WANCorba.idl * 8 Íîÿáðü 2007 ã. 21:54:08 MSK */ public interface WANCorbaOperations { void receivePacket (String inPacket); void setServiceName (String inService); void shutdown (); } // interface WANCorbaOperations Index: WANRMIServer.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/WANRMIServer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WANRMIServer.java 14 Oct 2007 17:19:07 -0000 1.1 --- WANRMIServer.java 10 Nov 2007 13:25:38 -0000 1.2 *************** *** 18,27 **** } ! public void recievePacket(Packet inPacket) throws RemoteException{ ! System.out.println("TEST!!!"); } public void setServiceName(String inService) throws RemoteException{ parentInterface.setConnService(inService); } } --- 18,30 ---- } ! public void recievePacket(String inPacket) throws RemoteException{ ! try{ ! parentInterface.receivePacket(inPacket); ! }catch(LowLinkException e){} } public void setServiceName(String inService) throws RemoteException{ parentInterface.setConnService(inService); + //parentInterface.connect(); } } --- NEW FILE: WANCorba.idl --- module core { interface WANCorba { void receivePacket(in string inPacket); void setServiceName(in string inService); oneway void shutdown(); }; }; --- NEW FILE: WANCorbaServer.java --- package core; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import org.omg.PortableServer.POA; import java.util.Properties; class WANCorbaImpl extends WANCorbaPOA { private ORB orb; public void setORB(ORB orb_val) { orb = orb_val; } public void receivePacket (String inPacket){ System.out.println(inPacket); } public void setServiceName (String inService){ System.out.println(inService); } // implement shutdown() method public void shutdown() { orb.shutdown(false); } } public class WANCorbaServer { ORB orb; public WANCorbaServer(String name) { String args[] = {"",""}; orb = ORB.init(args, null); WANCorbaServerHandler wh = new WANCorbaServerHandler(orb, name); wh.start(); } public void close(){ if(orb!=null){ orb.shutdown(false); orb = null; } } class WANCorbaServerHandler extends Thread { ORB orb; WANCorbaServerHandler(ORB orb, String name) { try{ this.orb = orb; POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); WANCorbaImpl wImpl = new WANCorbaImpl(); wImpl.setORB(orb); org.omg.CORBA.Object ref = rootpoa.servant_to_reference(wImpl); WANCorba href = WANCorbaHelper.narrow(ref); org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); NameComponent path[] = ncRef.to_name( name ); ncRef.rebind(path, href); } catch (Exception e) { e.printStackTrace(System.out); } } public void run() { try{ orb.run(); }catch (Exception e) { e.printStackTrace(System.out); } } } } Index: WANRMI.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/WANRMI.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WANRMI.java 14 Oct 2007 17:19:07 -0000 1.1 --- WANRMI.java 10 Nov 2007 13:25:38 -0000 1.2 *************** *** 16,20 **** */ public interface WANRMI extends java.rmi.Remote { ! public void recievePacket(Packet inPacket) throws RemoteException; public void setServiceName(String inService) throws RemoteException; --- 16,20 ---- */ public interface WANRMI extends java.rmi.Remote { ! public void recievePacket(String inPacket) throws RemoteException; public void setServiceName(String inService) throws RemoteException; Index: WANSocket.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/WANSocket.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** WANSocket.java 20 Oct 2007 13:27:20 -0000 1.3 --- WANSocket.java 10 Nov 2007 13:25:38 -0000 1.4 *************** *** 11,18 **** import java.io.*; import java.net.*; ! import core.protocolsuite.tcp_ip.IP_packet; ! import core.protocolsuite.tcp_ip.ICMP_packet; ! import core.protocolsuite.tcp_ip.UDP_packet; ! import core.protocolsuite.tcp_ip.TCP_packet; /** * --- 11,15 ---- import java.io.*; import java.net.*; ! /** * *************** *** 98,132 **** public void recievePacket(String inPacket) throws LowLinkException{ ! System.out.println(inPacket); ! ! String[] packets = inPacket.split("#"); ! ! char ptype = packets[packets.length - 1].charAt(0); ! ! System.out.println(ptype); ! ! switch(ptype){ ! case 'M': ! ICMP_packet icmp = new ICMP_packet(""); ! icmp.fromBytes(inPacket); ! parentInterface.receivePacket(icmp); ! break; ! case 'I': ! IP_packet ip = new IP_packet(""); ! ip.fromBytes(inPacket); ! parentInterface.receivePacket(ip); ! break; ! case 'T': ! TCP_packet tcp = new TCP_packet("","",0,0); ! tcp.fromBytes(inPacket); ! parentInterface.receivePacket(tcp); ! break; ! case 'U': ! UDP_packet udp = new UDP_packet("","",0,0); ! udp.fromBytes(inPacket); ! parentInterface.receivePacket(udp); ! break; ! } ! } --- 95,99 ---- public void recievePacket(String inPacket) throws LowLinkException{ ! parentInterface.receivePacket(inPacket); } --- NEW FILE: WANCorbaHolder.java --- package core; /** * core/WANCorbaHolder.java . * Generated by the IDL-to-Java compiler (portable), version "3.2" * from WANCorba.idl * 8 Íîÿáðü 2007 ã. 21:54:08 MSK */ public final class WANCorbaHolder implements org.omg.CORBA.portable.Streamable { public core.WANCorba value = null; public WANCorbaHolder () { } public WANCorbaHolder (core.WANCorba initialValue) { value = initialValue; } public void _read (org.omg.CORBA.portable.InputStream i) { value = core.WANCorbaHelper.read (i); } public void _write (org.omg.CORBA.portable.OutputStream o) { core.WANCorbaHelper.write (o, value); } public org.omg.CORBA.TypeCode _type () { return core.WANCorbaHelper.type (); } } --- NEW FILE: _WANCorbaStub.java --- package core; /** * core/_WANCorbaStub.java . * Generated by the IDL-to-Java compiler (portable), version "3.2" * from WANCorba.idl * 8 Íîÿáðü 2007 ã. 21:54:08 MSK */ public class _WANCorbaStub extends org.omg.CORBA.portable.ObjectImpl implements core.WANCorba { public void receivePacket (String inPacket) { org.omg.CORBA.portable.InputStream $in = null; try { org.omg.CORBA.portable.OutputStream $out = _request ("receivePacket", true); $out.write_string (inPacket); $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) { receivePacket (inPacket ); } finally { _releaseReply ($in); } } // receivePacket public void setServiceName (String inService) { org.omg.CORBA.portable.InputStream $in = null; try { org.omg.CORBA.portable.OutputStream $out = _request ("setServiceName", true); $out.write_string (inService); $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) { setServiceName (inService ); } finally { _releaseReply ($in); } } // setServiceName public void shutdown () { org.omg.CORBA.portable.InputStream $in = null; try { org.omg.CORBA.portable.OutputStream $out = _request ("shutdown", false); $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) { shutdown ( ); } finally { _releaseReply ($in); } } // shutdown // Type-specific CORBA::Object operations private static String[] __ids = { "IDL:core/WANCorba:1.0"}; public String[] _ids () { return (String[])__ids.clone (); } private void readObject (java.io.ObjectInputStream s) throws java.io.IOException { String str = s.readUTF (); String[] args = null; java.util.Properties props = null; org.omg.CORBA.Object obj = org.omg.CORBA.ORB.init (args, props).string_to_object (str); org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate (); _set_delegate (delegate); } private void writeObject (java.io.ObjectOutputStream s) throws java.io.IOException { String[] args = null; java.util.Properties props = null; String str = org.omg.CORBA.ORB.init (args, props).object_to_string (this); s.writeUTF (str); } } // class _WANCorbaStub Index: LayerInfoHandler.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/LayerInfoHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LayerInfoHandler.java 20 Nov 2005 20:30:53 -0000 1.2 --- LayerInfoHandler.java 10 Nov 2007 13:25:38 -0000 1.3 *************** *** 50,55 **** --- 50,58 ---- private boolean ended; + private boolean blocked; + /** Constructs a new LayerInfoHandler */ protected LayerInfoHandler() { + blocked = false; infoQueue = new Vector(); ended = false; *************** *** 63,69 **** --- 66,74 ---- */ public void receiveInfo(LayerInfo info) { + block(); if (!ended) { infoQueue.add(info); } + unblock(); } *************** *** 75,84 **** **/ public LayerInfo getNext() { ! if (infoQueue.size() == 0) { ! return null; ! } ! LayerInfo info = (LayerInfo)infoQueue.elementAt(0); ! infoQueue.remove(0); ! return info; } --- 80,92 ---- **/ public LayerInfo getNext() { ! block(); ! if (infoQueue.size() == 0) { ! unblock(); ! return null; ! } ! LayerInfo info = (LayerInfo)infoQueue.elementAt(0); ! infoQueue.remove(0); ! unblock(); ! return info; } *************** *** 110,114 **** --- 118,124 ---- **/ public void clear(){ + block(); infoQueue = new Vector(); + unblock(); } *************** *** 120,125 **** * @version v0.10 **/ ! public Vector getRecordedInfo(){ ! Vector output = new Vector(); Iterator it = infoQueue.iterator(); while(it.hasNext()){ --- 130,136 ---- * @version v0.10 **/ ! public Vector getRecordedInfo(){ ! block(); ! Vector output = new Vector(); Iterator it = infoQueue.iterator(); while(it.hasNext()){ *************** *** 127,131 **** --- 138,155 ---- output.addElement(tempInfo.getRecordedInfo()); } + unblock(); return output; } + + protected void block(){ + try{ + while(blocked) + Thread.sleep(10); + }catch(Exception e){ e.printStackTrace(); } + blocked = true; + } + + protected void unblock(){ + blocked = false; + } }//EOF Index: WANNetworkInterface.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/WANNetworkInterface.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** WANNetworkInterface.java 19 Oct 2007 19:38:06 -0000 1.4 --- WANNetworkInterface.java 10 Nov 2007 13:25:38 -0000 1.5 *************** *** 32,35 **** --- 32,39 ---- import java.rmi.*; import java.rmi.Naming; + import core.protocolsuite.tcp_ip.IP_packet; + import core.protocolsuite.tcp_ip.ICMP_packet; + import core.protocolsuite.tcp_ip.UDP_packet; + import core.protocolsuite.tcp_ip.TCP_packet; public class WANNetworkInterface extends NetworkInterface{ *************** *** 97,101 **** public void UP(){ up = listen(); ! up &= connect(); super.UP(); } --- 101,107 ---- public void UP(){ up = listen(); ! if(!server){ ! up &= connect(); ! } super.UP(); } *************** *** 118,123 **** up = false; } ! ! protected void receivePacket(Packet inPacket) throws LowLinkException { // cast the packet to an EthernetPacket //Ethernet_packet tempPacket = (Ethernet_packet)inPacket; --- 124,129 ---- up = false; } ! ! public void receivePacket(Packet inPacket) throws LowLinkException { // cast the packet to an EthernetPacket //Ethernet_packet tempPacket = (Ethernet_packet)inPacket; *************** *** 140,143 **** --- 146,183 ---- parentNode.receivePacket(inPacket, name); } + + public void receivePacket(String inPacket) throws LowLinkException{ + System.out.println(inPacket); + + String[] packets = inPacket.split("#"); + + char ptype = packets[packets.length - 1].charAt(0); + + System.out.println(ptype); + + switch(ptype){ + case 'M': + ICMP_packet icmp = new ICMP_packet(""); + icmp.fromBytes(inPacket); + receivePacket(icmp); + break; + case 'I': + IP_packet ip = new IP_packet(""); + ip.fromBytes(inPacket); + receivePacket(ip); + break; + case 'T': + TCP_packet tcp = new TCP_packet("","",0,0); + tcp.fromBytes(inPacket); + receivePacket(tcp); + break; + case 'U': + UDP_packet udp = new UDP_packet("","",0,0); + udp.fromBytes(inPacket); + receivePacket(udp); + break; + } + + } public int getType(){ *************** *** 147,154 **** protected void sendPacket(Packet inPacket) throws LowLinkException { if(!connected){ ! connect(); } ! ! addLayerInfo("WAN Packet", "Sending packet from interface "+ name); if(connected){ --- 187,193 ---- protected void sendPacket(Packet inPacket) throws LowLinkException { if(!connected){ ! connect(); } ! addLayerInfo("WAN Packet", "Sending packet from interface " + name); if(connected){ *************** *** 156,163 **** switch(type){ case RMI: ! RMIServer.recievePacket(inPacket); break; case SocketTCP: case SocketUDP: s.sendPacket(inPacket); break; --- 195,203 ---- switch(type){ case RMI: ! RMIClient.recievePacket(inPacket.toBytes()); break; case SocketTCP: case SocketUDP: + s.sendPacket(inPacket); break; *************** *** 199,203 **** RMIServer = new WANRMIServer(this); Naming.bind (name, RMIServer); ! return true; } --- 239,243 ---- RMIServer = new WANRMIServer(this); Naming.bind (name, RMIServer); ! return true; } *************** *** 218,222 **** ! protected boolean connect(){ try{ switch(type){ --- 258,262 ---- ! public boolean connect(){ try{ switch(type){ --- NEW FILE: WANCorbaPOA.java --- package core; /** * core/WANCorbaPOA.java . * Generated by the IDL-to-Java compiler (portable), version "3.2" * from WANCorba.idl * 8 Íîÿáðü 2007 ã. 21:54:08 MSK */ public abstract class WANCorbaPOA extends org.omg.PortableServer.Servant implements core.WANCorbaOperations, org.omg.CORBA.portable.InvokeHandler { // Constructors private static java.util.Hashtable _methods = new java.util.Hashtable (); static { _methods.put ("receivePacket", new java.lang.Integer (0)); _methods.put ("setServiceName", new java.lang.Integer (1)); _methods.put ("shutdown", new java.lang.Integer (2)); } public org.omg.CORBA.portable.OutputStream _invoke (String $method, org.omg.CORBA.portable.InputStream in, org.omg.CORBA.portable.ResponseHandler $rh) { org.omg.CORBA.portable.OutputStream out = null; java.lang.Integer __method = (java.lang.Integer)_methods.get ($method); if (__method == null) throw new org.omg.CORBA.BAD_OPERATION (0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); switch (__method.intValue ()) { case 0: // core/WANCorba/receivePacket { String inPacket = in.read_string (); this.receivePacket (inPacket); out = $rh.createReply(); break; } case 1: // core/WANCorba/setServiceName { String inService = in.read_string (); this.setServiceName (inService); out = $rh.createReply(); break; } case 2: // core/WANCorba/shutdown { this.shutdown (); out = $rh.createReply(); break; } default: throw new org.omg.CORBA.BAD_OPERATION (0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); } return out; } // _invoke // Type-specific CORBA::Object operations private static String[] __ids = { "IDL:core/WANCorba:1.0"}; public String[] _all_interfaces (org.omg.PortableServer.POA poa, byte[] objectId) { return (String[])__ids.clone (); } public WANCorba _this() { return WANCorbaHelper.narrow( super._this_object()); } public WANCorba _this(org.omg.CORBA.ORB orb) { return WANCorbaHelper.narrow( super._this_object(orb)); } } // class WANCorbaPOA --- NEW FILE: WANCorba.java --- package core; /** * core/WANCorba.java . * Generated by the IDL-to-Java compiler (portable), version "3.2" * from WANCorba.idl * 8 Íîÿáðü 2007 ã. 21:54:08 MSK */ public interface WANCorba extends WANCorbaOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity { } // interface WANCorba --- NEW FILE: WANCorbaHelper.java --- package core; /** * core/WANCorbaHelper.java . * Generated by the IDL-to-Java compiler (portable), version "3.2" * from WANCorba.idl * 8 Íîÿáðü 2007 ã. 21:54:08 MSK */ abstract public class WANCorbaHelper { private static String _id = "IDL:core/WANCorba:1.0"; public static void insert (org.omg.CORBA.Any a, core.WANCorba that) { org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); a.type (type ()); write (out, that); a.read_value (out.create_input_stream (), type ()); } public static core.WANCorba extract (org.omg.CORBA.Any a) { return read (a.create_input_stream ()); } private static org.omg.CORBA.TypeCode __typeCode = null; synchronized public static org.omg.CORBA.TypeCode type () { if (__typeCode == null) { __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (core.WANCorbaHelper.id (), "WANCorba"); } return __typeCode; } public static String id () { return _id; } public static core.WANCorba read (org.omg.CORBA.portable.InputStream istream) { return narrow (istream.read_Object (_WANCorbaStub.class)); } public static void write (org.omg.CORBA.portable.OutputStream ostream, core.WANCorba value) { ostream.write_Object ((org.omg.CORBA.Object) value); } public static core.WANCorba narrow (org.omg.CORBA.Object obj) { if (obj == null) return null; else if (obj instanceof core.WANCorba) return (core.WANCorba)obj; else if (!obj._is_a (id ())) throw new org.omg.CORBA.BAD_PARAM (); else { org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate (); core._WANCorbaStub stub = new core._WANCorbaStub (); stub._set_delegate(delegate); return stub; } } public static core.WANCorba unchecked_narrow (org.omg.CORBA.Object obj) { if (obj == null) return null; else if (obj instanceof core.WANCorba) return (core.WANCorba)obj; else { org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate (); core._WANCorbaStub stub = new core._WANCorbaStub (); stub._set_delegate(delegate); return stub; } } } |