1 2 package transport; 3 4 import org.apache.commons.logging.Log; 5 import org.apache.commons.logging.LogFactory; 6 7 import transport.packet.Packet; 8 9 import jegg.EggBase; 10 import jegg.Message; 11 import jegg.PortException; 12 import jegg.Port; 13 14 23 public class PacketTransport extends EggBase 24 { 25 26 private static final Log LOG = LogFactory.getLog(PacketTransport.class); 27 28 private Port publisherPort; 29 private Port writerPort; 30 private Port portmanagerPort; 31 32 public Port getPort() 33 { 34 return getContext().getPort(); 35 } 36 37 38 public void handle(Object message) 39 { 40 LOG.warn("Unexpected message: "+message); 41 } 42 43 public void handle(Port p) 44 { 45 String name = (String ) p.getId(); 46 47 if (LOG.isDebugEnabled()) 48 LOG.debug(getContext().getId()+": "+p); 49 50 if (name.endsWith("publisher")) 51 publisherPort = p; 52 else 53 if (name.endsWith("writer")) 54 writerPort = p; 55 else 56 if (name.endsWith("portmanager")) 57 portmanagerPort = p; 58 } 59 60 63 public void handle(AddPacketListenerCommand a) 64 { 65 Message message = getContext().getCurrentMessage(); 66 try 67 { 68 publisherPort.send(message); 69 } 70 catch (PortException e) 71 { 72 LOG.error("Failed to add packetlistener", e); 73 } 74 } 75 76 79 public void handle(RemovePacketListenerCommand r) 80 { 81 Message message = getContext().getCurrentMessage(); 82 try 83 { 84 publisherPort.send(message); 85 } 86 catch (PortException e) 87 { 88 LOG.error("Failed to remove packetlistener", e); 89 } 90 } 91 92 95 public void handle(ConfigureLocalAddressCommand c) 96 { 97 LocalAddress a = c.getAddress(); 99 100 try 101 { 102 portmanagerPort.send(getContext().createMessage(a)); 103 } 104 catch (PortException e) 105 { 106 LOG.error("Failed to configure port manager", e); 107 } 108 } 109 110 113 public void handle(GetLocalAddressCommand c) 114 { 115 Message message = getContext().getCurrentMessage(); 116 try 117 { 118 portmanagerPort.send(message); 119 } 120 catch (PortException e) 121 { 122 LOG.error("Failed to fetch list of open ports", e); 123 } 124 } 125 126 129 public void handle(Packet p) 130 { 131 Message message = getContext().getCurrentMessage(); 133 try 134 { 135 writerPort.send(message); 136 } 137 catch (PortException e) 138 { 139 LOG.error("Failed to write packet to network", e); 140 } 141 } 142 } 143 | Popular Tags |