Provide a convenient method for indicating that a listener does not
need to be responded to. It turns out that a listener may not be a marshaller if a server entity is calling a service request method directly. The convenience method handles this and is also cleaner looking for callers. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3832 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -237,6 +237,17 @@ public class InvocationMarshaller
|
|||||||
return _invCode;
|
return _invCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A convenience method to indicate that the listener is not going
|
||||||
|
* to be responded-to, and that this is ok.
|
||||||
|
*/
|
||||||
|
public static void setNoResponse (InvocationListener listener)
|
||||||
|
{
|
||||||
|
if (listener instanceof ListenerMarshaller) {
|
||||||
|
((ListenerMarshaller) listener).setNoResponse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by generated invocation marshaller code; packages up and
|
* Called by generated invocation marshaller code; packages up and
|
||||||
* sends the specified invocation service request.
|
* sends the specified invocation service request.
|
||||||
|
|||||||
@@ -74,8 +74,7 @@ public class SceneProvider
|
|||||||
Log.info("Abandoning scene move, client gone " +
|
Log.info("Abandoning scene move, client gone " +
|
||||||
"[who=" + source.who() +
|
"[who=" + source.who() +
|
||||||
", dest=" + scmgr.where() + "].");
|
", dest=" + scmgr.where() + "].");
|
||||||
((InvocationMarshaller.ListenerMarshaller) listener).
|
InvocationMarshaller.setNoResponse(listener);
|
||||||
setNoResponse();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
finishMoveToRequest(source, scmgr, sceneVer, listener);
|
finishMoveToRequest(source, scmgr, sceneVer, listener);
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class SpotProvider
|
|||||||
Log.info("Ignoring stale traverse portal request " +
|
Log.info("Ignoring stale traverse portal request " +
|
||||||
"[caller=" + caller.who() + ", oSceneId=" + sceneId +
|
"[caller=" + caller.who() + ", oSceneId=" + sceneId +
|
||||||
", portalId=" + portalId + ", cSceneId=" + cSceneId + "].");
|
", portalId=" + portalId + ", cSceneId=" + cSceneId + "].");
|
||||||
((InvocationMarshaller.ListenerMarshaller) listener).setNoResponse();
|
InvocationMarshaller.setNoResponse(listener);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,8 +131,7 @@ public class SpotProvider
|
|||||||
Log.info("Abandoning portal traversal, client gone " +
|
Log.info("Abandoning portal traversal, client gone " +
|
||||||
"[who=" + fsource.who() +
|
"[who=" + fsource.who() +
|
||||||
", dest=" + scmgr.where() + "].");
|
", dest=" + scmgr.where() + "].");
|
||||||
((InvocationMarshaller.ListenerMarshaller) flistener).
|
InvocationMarshaller.setNoResponse(flistener);
|
||||||
setNoResponse();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user