[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 { |
---|
| 30 | RemoteObject remote = (RemoteObject) Class.forName(className).newInstance(); |
---|
| 31 | getBroker().bind(reference, remote, env); |
---|
[91] | 32 | } |
---|
| 33 | |
---|
| 34 | @Override |
---|
[92] | 35 | public void spawnObject(String reference, String className) throws Exception { |
---|
| 36 | RemoteObject remote = (RemoteObject) Class.forName(className).newInstance(); |
---|
| 37 | getBroker().bind(reference, remote); |
---|
[91] | 38 | } |
---|
| 39 | |
---|
| 40 | @Override |
---|
| 41 | public void deleteObject(String reference) throws RemoteException, IOException { |
---|
[92] | 42 | getBroker().unbind(reference); |
---|
[91] | 43 | } |
---|
| 44 | |
---|
| 45 | @Override |
---|
[103] | 46 | public boolean hasObject(String reference) throws RetryException { |
---|
[92] | 47 | return getBroker().getRemoteObjs().containsKey(reference); |
---|
[91] | 48 | } |
---|
| 49 | |
---|
[103] | 50 | @Override |
---|
| 51 | public HasObject hasObjectInfo(String reference) throws RetryException { |
---|
| 52 | if (getBroker().getRemoteObjs().containsKey(reference)) { |
---|
| 53 | RemoteObject r = getBroker().getRemoteObjs().get(reference); |
---|
| 54 | int numThreads = r.getPool().getWorkers().size(); |
---|
| 55 | return new HasObject(this.getRef(), reference, true, numThreads); |
---|
| 56 | } |
---|
| 57 | return new HasObject(this.getRef(), reference, false, 0); |
---|
| 58 | } |
---|
| 59 | |
---|
[91] | 60 | } |
---|