INNER CODE UNIT · Java
enqueueCall
RuedigerMoeller/kontraktor · attic/ElasticScheduler.java:195
public Object enqueueCall(Actor sendingActor, Actor receiver, String methodName, Object args[], boolean isCB) {
return enqueueCallFromRemote(null,sendingActor,receiver,methodName,args,isCB);
}
@Override
public Object enqueueCallFromRemote(RemoteRegistry reg, Actor sendingActor, Actor receiver, String methodName, Object[] args, boolean isCB) {
// System.out.println("dispatch "+methodName+" "+Thread.currentThread());
// here sender + receiver are known in a ST context
Actor actor = receiver.getActor();
Method method = actor.__getCachedMethod(methodName, actor);
int count = 0;
// scan for callbacks in arguments ..
for (int i = 0; i < args.length; i++) {
Object arg = args[i];
if ( arg instanceof Callback) {
args[i] = new CallbackWrapper<>(sendingActor,(Callback<Object>) arg);
}