KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > drftpd > slave > async > AsyncSlaveManager


1 /*
2  * SocketSlaveManager.java
3  *
4  * Created on April 20, 2004, 2:42 PM
5  */

6
7 package org.drftpd.slave.async;
8
9 import java.rmi.RemoteException JavaDoc;
10 import java.util.Collection JavaDoc;
11 import java.util.Hashtable JavaDoc;
12 import java.util.Iterator JavaDoc;
13 import java.util.Properties JavaDoc;
14
15 import net.sf.drftpd.master.ConnectionManager;
16 import net.sf.drftpd.master.RemoteSlave;
17 /**
18  *
19  * @author jbarrett
20  */

21 public class AsyncSlaveManager extends java.lang.Thread JavaDoc {
22     
23     private ConnectionManager _conman;
24     private String JavaDoc _serverName;
25     private String JavaDoc _socketPass;
26     private int _socketPort;
27     
28     /** Creates a new instance of SocketSlaveManager */
29     public AsyncSlaveManager(ConnectionManager conman, Properties JavaDoc cfg) {
30         _conman = conman;
31         _serverName = cfg.getProperty("master.bindname", "slavemaster");
32         _socketPass = cfg.getProperty("master.socketpass", "");
33         _socketPort = Integer.parseInt(cfg.getProperty("master.socketport", "1100"));
34         start();
35     }
36     
37     public void run() {
38         AsyncSlaveListener ssl = new AsyncSlaveListener(_conman, _socketPort, _socketPass);
39         
40         while (true) {
41             Collection JavaDoc slaves = _conman.getSlaveManager().getSlaves();
42             for (Iterator JavaDoc i=slaves.iterator(); i.hasNext();) {
43                 RemoteSlave rslave = (RemoteSlave)i.next();
44                 Hashtable JavaDoc cfg = rslave.getConfig();
45                 if (rslave.isAvailable()) continue;
46                 if (cfg.get("addr") == null) continue;
47                 String JavaDoc host = (String JavaDoc)cfg.get("addr");
48                 if (host.equals("Dynamic")) continue;
49                 // unconnected socket slave, try to connect
50
try {
51                     AsyncSlave tmp = new AsyncSlave(_conman, rslave.getConfig());
52                 } catch (RemoteException JavaDoc e) {
53                 }
54             }
55             try {
56                 sleep(60000);
57             } catch (Exception JavaDoc e) {}
58         }
59     }
60     
61 }
62
Popular Tags