Type safety.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4237 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2006-06-30 21:58:34 +00:00
parent e7cb973b94
commit 06680b789f
@@ -75,10 +75,8 @@ public class InvocationDirector
_client = client; _client = client;
// add ourselves as a subscriber to the client object // add ourselves as a subscriber to the client object
_omgr.subscribeToObject(cloid, new Subscriber() { _omgr.subscribeToObject(cloid, new Subscriber<ClientObject>() {
public void objectAvailable (DObject object) { public void objectAvailable (ClientObject clobj) {
ClientObject clobj = (ClientObject)object;
// add ourselves as an event listener // add ourselves as an event listener
clobj.addListener(InvocationDirector.this); clobj.addListener(InvocationDirector.this);
@@ -144,8 +142,9 @@ public class InvocationDirector
public void unregisterReceiver (String receiverCode) public void unregisterReceiver (String receiverCode)
{ {
// remove the receiver from the list // remove the receiver from the list
for (Iterator iter = _reclist.iterator(); iter.hasNext(); ) { for (Iterator<InvocationDecoder> iter = _reclist.iterator();
InvocationDecoder decoder = (InvocationDecoder)iter.next(); iter.hasNext(); ) {
InvocationDecoder decoder = iter.next();
if (decoder.getReceiverCode().equals(receiverCode)) { if (decoder.getReceiverCode().equals(receiverCode)) {
iter.remove(); iter.remove();
} }
@@ -193,8 +192,8 @@ public class InvocationDirector
// pack all the set add events into a single transaction // pack all the set add events into a single transaction
_clobj.startTransaction(); _clobj.startTransaction();
try { try {
for (Iterator iter = _reclist.iterator(); iter.hasNext(); ) { for (InvocationDecoder decoder : _reclist) {
assignReceiverId((InvocationDecoder)iter.next()); assignReceiverId(decoder);
} }
} finally { } finally {
_clobj.commitTransaction(); _clobj.commitTransaction();
@@ -272,8 +271,7 @@ public class InvocationDirector
int reqId, int methodId, Object[] args) int reqId, int methodId, Object[] args)
{ {
// look up the invocation marshaller registered for that response // look up the invocation marshaller registered for that response
ListenerMarshaller listener = (ListenerMarshaller) ListenerMarshaller listener = _listeners.remove(reqId);
_listeners.remove(reqId);
if (listener == null) { if (listener == null) {
Log.warning("Received invocation response for which we have " + Log.warning("Received invocation response for which we have " +
"no registered listener [reqId=" + reqId + "no registered listener [reqId=" + reqId +
@@ -314,8 +312,7 @@ public class InvocationDirector
int receiverId, int methodId, Object[] args) int receiverId, int methodId, Object[] args)
{ {
// look up the decoder registered for this receiver // look up the decoder registered for this receiver
InvocationDecoder decoder = (InvocationDecoder) InvocationDecoder decoder = _receivers.get(receiverId);
_receivers.get(receiverId);
if (decoder == null) { if (decoder == null) {
Log.warning("Received notification for which we have no " + Log.warning("Received notification for which we have no " +
"registered receiver [recvId=" + receiverId + "registered receiver [recvId=" + receiverId +
@@ -348,13 +345,13 @@ public class InvocationDirector
protected void handleClientObjectChanged (int newCloid) protected void handleClientObjectChanged (int newCloid)
{ {
// subscribe to the new client object // subscribe to the new client object
_omgr.subscribeToObject(newCloid, new Subscriber() { _omgr.subscribeToObject(newCloid, new Subscriber<ClientObject>() {
public void objectAvailable (DObject object) { public void objectAvailable (ClientObject clobj) {
// grab a reference to our old receiver registrations // grab a reference to our old receiver registrations
DSet receivers = _clobj.receivers; DSet receivers = _clobj.receivers;
// replace the client object // replace the client object
_clobj = (ClientObject)object; _clobj = clobj;
// add ourselves as an event listener // add ourselves as an event listener
_clobj.addListener(InvocationDirector.this); _clobj.addListener(InvocationDirector.this);
@@ -399,9 +396,9 @@ public class InvocationDirector
{ {
if (_listeners.size() > 0) { if (_listeners.size() > 0) {
long then = now - LISTENER_MAX_AGE; long then = now - LISTENER_MAX_AGE;
Iterator iter = _listeners.values().iterator(); Iterator<ListenerMarshaller> iter = _listeners.values().iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
ListenerMarshaller lm = (ListenerMarshaller)iter.next(); ListenerMarshaller lm = iter.next();
if (then > lm.mapStamp) { if (then > lm.mapStamp) {
// Log.info("Flushing marshaller " + lm + "."); // Log.info("Flushing marshaller " + lm + ".");
iter.remove(); iter.remove();
@@ -444,14 +441,17 @@ public class InvocationDirector
/** Used to keep track of invocation service listeners which will /** Used to keep track of invocation service listeners which will
* receive responses from invocation service requests. */ * receive responses from invocation service requests. */
protected HashIntMap _listeners = new HashIntMap(); protected HashIntMap<ListenerMarshaller> _listeners =
new HashIntMap<ListenerMarshaller>();
/** Used to keep track of invocation notification receivers. */ /** Used to keep track of invocation notification receivers. */
protected HashIntMap _receivers = new HashIntMap(); protected HashIntMap<InvocationDecoder> _receivers =
new HashIntMap<InvocationDecoder>();
/** All registered receivers are maintained in a list so that we can /** All registered receivers are maintained in a list so that we can
* assign receiver ids to them when we go online. */ * assign receiver ids to them when we go online. */
protected ArrayList _reclist = new ArrayList(); protected ArrayList<InvocationDecoder> _reclist =
new ArrayList<InvocationDecoder>();
/** The last time we flushed our listeners. */ /** The last time we flushed our listeners. */
protected long _lastFlushTime; protected long _lastFlushTime;