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; |
---|
8 | import omq.exception.RetryException; |
---|
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 | |
---|
23 | @Override |
---|
24 | public Set<String> getRemoteObjects() { |
---|
25 | return getBroker().getRemoteObjs().keySet(); |
---|
26 | } |
---|
27 | |
---|
28 | @Override |
---|
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); |
---|
32 | } |
---|
33 | |
---|
34 | @Override |
---|
35 | public void spawnObject(String reference, String className) throws Exception { |
---|
36 | RemoteObject remote = (RemoteObject) Class.forName(className).newInstance(); |
---|
37 | getBroker().bind(reference, remote); |
---|
38 | } |
---|
39 | |
---|
40 | @Override |
---|
41 | public void deleteObject(String reference) throws RemoteException, IOException { |
---|
42 | getBroker().unbind(reference); |
---|
43 | } |
---|
44 | |
---|
45 | @Override |
---|
46 | public boolean hasObject(String reference) throws RetryException { |
---|
47 | return getBroker().getRemoteObjs().containsKey(reference); |
---|
48 | } |
---|
49 | |
---|
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 | |
---|
60 | } |
---|