[91] | 1 | package omq.common.broker; |
---|
| 2 | |
---|
| 3 | import java.io.IOException; |
---|
| 4 | import java.util.Properties; |
---|
| 5 | import java.util.Set; |
---|
| 6 | |
---|
| 7 | import omq.exception.RemoteException; |
---|
[103] | 8 | import omq.exception.RetryException; |
---|
[91] | 9 | import omq.server.RemoteObject; |
---|
| 10 | |
---|
| 11 | /** |
---|
| 12 | * |
---|
| 13 | * @author Sergi Toda <sergi.toda@estudiants.urv.cat> |
---|
| 14 | * |
---|
| 15 | */ |
---|
| 16 | public class RemoteBrokerImpl extends RemoteObject implements RemoteBroker { |
---|
| 17 | |
---|
| 18 | /** |
---|
| 19 | * |
---|
| 20 | */ |
---|
| 21 | private static final long serialVersionUID = 1L; |
---|
| 22 | |
---|
[92] | 23 | @Override |
---|
| 24 | public Set<String> getRemoteObjects() { |
---|
| 25 | return getBroker().getRemoteObjs().keySet(); |
---|
[91] | 26 | } |
---|
| 27 | |
---|
| 28 | @Override |
---|
[92] | 29 | public void spawnObject(String reference, String className, Properties env) throws Exception { |
---|
[110] | 30 | System.out.println("SPAWN broker = " + this.getUID()); |
---|
[92] | 31 | RemoteObject remote = (RemoteObject) Class.forName(className).newInstance(); |
---|
| 32 | getBroker().bind(reference, remote, env); |
---|
[91] | 33 | } |
---|
| 34 | |
---|
| 35 | @Override |
---|
[92] | 36 | public void spawnObject(String reference, String className) throws Exception { |
---|
[110] | 37 | System.out.println("SPAWN broker = " + this.getUID()); |
---|
[92] | 38 | RemoteObject remote = (RemoteObject) Class.forName(className).newInstance(); |
---|
| 39 | getBroker().bind(reference, remote); |
---|
[91] | 40 | } |
---|
| 41 | |
---|
| 42 | @Override |
---|
| 43 | public void deleteObject(String reference) throws RemoteException, IOException { |
---|
[92] | 44 | getBroker().unbind(reference); |
---|
[91] | 45 | } |
---|
| 46 | |
---|
| 47 | @Override |
---|
[103] | 48 | public boolean hasObject(String reference) throws RetryException { |
---|
[92] | 49 | return getBroker().getRemoteObjs().containsKey(reference); |
---|
[91] | 50 | } |
---|
| 51 | |
---|
[103] | 52 | @Override |
---|
| 53 | public HasObject hasObjectInfo(String reference) throws RetryException { |
---|
[110] | 54 | System.out.println("Hola soc un broker" + getRef() + ", " + getUID() + ", fil: " + Thread.currentThread().getId()); |
---|
[103] | 55 | if (getBroker().getRemoteObjs().containsKey(reference)) { |
---|
| 56 | RemoteObject r = getBroker().getRemoteObjs().get(reference); |
---|
| 57 | int numThreads = r.getPool().getWorkers().size(); |
---|
[107] | 58 | return new HasObject(this.getUID(), reference, true, numThreads); |
---|
[103] | 59 | } |
---|
[107] | 60 | return new HasObject(this.getUID(), reference, false, 0); |
---|
[103] | 61 | } |
---|
| 62 | |
---|
[91] | 63 | } |
---|