1 24 34 package org.datashare.client; 35 36 import org.datashare.objects.DataShareObject; 37 import org.datashare.objects.UpdateAvailableMsg; 38 import org.datashare.objects.ChannelDescription; 39 import org.datashare.client.DataShareClient; 40 import org.datashare.client.DataShareClientInterface; 41 import org.datashare.client.DataShareConnection; 42 import javax.swing.tree.DefaultMutableTreeNode ; 43 import java.net.InetAddress ; 44 45 56 public class BroadCastClient implements DataShareClientInterface 57 { 58 68 private boolean useThreads = false; 69 70 73 private String clientName; 74 75 78 private String clientUniqueName; 79 80 82 85 private InetAddress serverInetAddress; 86 87 90 private int serverCommandStatusPort; 91 92 95 private String channelName; 96 97 101 private BroadCastInterface bci; 102 103 106 private DataShareClient myClient = new DataShareClient(); 107 108 111 public BroadCastClient() 112 {} 113 114 133 public void 134 initialize(InetAddress serverInetAddress, 135 int serverCommandStatusPort, 136 String clientName, 137 BroadCastInterface bci, 138 String channelName) 139 { 140 myClient.initialize(this, 141 serverInetAddress, 142 serverCommandStatusPort, 143 "BroadCastClient", 144 "used by all BroadCastClients", 145 clientName, 146 "", 147 "", 148 "", 149 channelName, 150 "shared by all clients for this workflow", 151 ChannelDescription.TCP); 152 this.serverInetAddress = serverInetAddress; 153 this.serverCommandStatusPort = serverCommandStatusPort; 154 this.channelName = channelName; 156 this.bci = bci; 157 } 158 159 163 public void 164 shutDown() 165 { 166 myClient.shutDown(); 167 } 168 169 174 public void 175 sendDataToAll(Object object) 176 { 177 myClient.sendDataToAll(object); 178 } 179 180 185 public void 186 sendDataToOthers(Object object) 187 { 188 myClient.sendDataToOthers(object); 189 } 190 191 201 public void 202 dataReceived(DataShareObject dataShareObject) 203 { 204 if(useThreads) 205 { 206 final DataShareObject thisObject = dataShareObject; 207 final Runnable sendTheObject = new Runnable () 208 { 209 public void run() 210 { 211 bci.newDataReceived(thisObject); 212 } 213 }; 214 javax.swing.SwingUtilities.invokeLater(sendTheObject); 215 } 216 else 217 { 218 bci.newDataReceived(dataShareObject); 219 } 220 } 221 222 232 public void 233 dataChannelIsReady(boolean success) 234 { 235 clientUniqueName = myClient.clientUniqueName; bci.dataChannelIsReady(success); 237 } 238 239 247 public void 248 commandStatusConnectionError(boolean fatalError, String errorMsg) 249 { 250 System.out.println("BroadCastClient lost commandStatusConnection: " + errorMsg); 251 if(fatalError) 252 bci.commandStatusConnectionLost(); 253 } 254 255 261 public void 262 connectionLost(DataShareConnection dsc) 263 { 264 System.out.println("BroadCastClient lost data connection for channel: " + dsc.dscd.channelDescription.channelName); 265 bci.dataConnectionLost(); 266 } 267 268 274 public void 275 updateReceived(UpdateAvailableMsg msg) 276 {} 277 278 284 public void 285 treeReceived(DefaultMutableTreeNode newTreeNode) 286 {} 287 288 289 } 290 | Popular Tags |