public long getRemoteId(Actor act) { Long integer = publishedActorMappingReverse.get(act.getActorRef()); return integer == null ? -1 : integer; }
private void publishActorDirect(Long id, Actor act) { Object o = publishedActorMap.get(id); if ( o != null && o != act.getActorRef() ) { Log.Error(this,"id already present old:"+o+" new:"+act); } publishedActorMap.put(id, act.getActorRef()); publishedActorMappingReverse.put(act.getActorRef(), id); act.__addRemoteConnection(this); }
private void publishActorDirect(Long id, Actor act) { Object o = publishedActorMap.get(id); if ( o != null && o != act.getActorRef() ) { Log.Error(this,"id already present old:"+o+" new:"+act); } publishedActorMap.put(id, act.getActorRef()); publishedActorMappingReverse.put(act.getActorRef(), id); act.__addRemoteConnection(this); }
@CallerSideMethod public void __addStopHandler( Callback<SELF> cb ) { if ( __stopHandlers == null ) { getActorRef().__stopHandlers = new ConcurrentLinkedQueue(); getActor().__stopHandlers = getActorRef().__stopHandlers; } __stopHandlers.add(cb); }
public void addActor(Actor act) { Actor ref = act.getActorRef(); Actor thisActor = act.getActor(); ref.__currentDispatcher = this; if ( thisActor != null ) // pseudo interface thisActor.__currentDispatcher = this; toAdd.offer(ref); }
@CallerSideMethod public void __addStopHandler( Callback<SELF> cb ) { if ( __stopHandlers == null ) { getActorRef().__stopHandlers = new ConcurrentLinkedQueue(); getActor().__stopHandlers = getActorRef().__stopHandlers; } __stopHandlers.add(cb); }
public void registerRemoteRefDirect(Actor act) { act = act.getActorRef(); remoteActorMap.put(act.__remoteId,act); remoteActors.add(act); act.__clientConnection = this; act.__addStopHandler((actor, err) -> { remoteRefStopped((Actor) actor); }); }
public void registerRemoteRefDirect(Actor act) { act = act.getActorRef(); remoteActorMap.put(act.__remoteId,act); remoteActors.add(act); act.__clientConnection = this; act.__addStopHandler((actor, err) -> { remoteRefStopped((Actor) actor); }); }
@Local public void router$handleServiceDisconnect(Actor x) { //FIXME: reply pending callbacks / promises with error List<Actor> newList = remoteServices.stream() .filter(rs -> rs != x.getActor() && rs != x.getActorRef()) .collect(Collectors.toList()); boolean remove = newList.size() != remoteServices.size(); if ( ! remove ) { // can happen multiple times } else { remoteServices = newList; Log.Info(this, "removed service "+x); } }
public long publishActor(Actor act) { Long integer = publishedActorMappingReverse.get(act.getActorRef()); if ( integer == null ) { integer = newActId(); publishActorDirect(integer, act); } return integer; }
public long publishActor(Actor act) { Long integer = publishedActorMappingReverse.get(act.getActorRef()); if ( integer == null ) { integer = newActId(); publishActorDirect(integer, act); } return integer; }
@Local public void router$handleServiceDisconnect(Actor x) { //FIXME: reply pending callbacks / promises with error boolean remove = remoteServices.remove(x.getActor()); if ( ! remove ) remove = remoteServices.remove(x.getActorRef()); if ( ! remove ) { // can happen multiple times } else { Log.Info(this, "removed service "+x); } }
@Local public void router$handleServiceDisconnect(Actor x) { //FIXME: reply pending callbacks / promises with error boolean remove = remoteServices.remove(x.getActor()); if ( ! remove ) remove = remoteServices.remove(x.getActorRef()); if ( ! remove ) { // can happen multiple times } else { Log.Info(this, "removed service "+x); } }
/** * warning: MThreaded * @param actor */ protected void remoteRefStopped(Actor actor) { removeRemoteActor(actor); actor.getActorRef().__stopped = true; actor.getActor().__stopped = true; }
protected void closeRef(CallEntry ce, ObjectSocket chan) throws IOException { if (ce.getTargetActor().getActorRef() == getFacadeProxy().getActorRef() ) { // invalidating connections should cleanup all refs chan.close(); } else { removeRemoteActor(ce.getTargetActor()); } }
@CallerSideMethod public void __addRemoteConnection( ConnectionRegistry con ) { if ( __connections == null ) { getActorRef().__connections = new ConcurrentLinkedQueue<ConnectionRegistry>(); getActor().__connections = getActorRef().__connections; } if ( ! __connections.contains(con) ) { __connections.add(con); if ( this instanceof RemotedActor) { String connectionIdentifier = con.getSocketRef().getConnectionIdentifier(); ((RemotedActor) this).hasBeenPublished(connectionIdentifier); } } }
protected void closeRef(CallEntry ce, ObjectSocket chan) throws IOException { if (ce.getTargetActor().getActorRef() == getFacadeProxy().getActorRef() ) { // invalidating connections should cleanup all refs chan.close(); } else { removeRemoteActor(ce.getTargetActor()); } }
@CallerSideMethod public void __addRemoteConnection( ConnectionRegistry con ) { if ( __connections == null ) { getActorRef().__connections = new ConcurrentLinkedQueue<ConnectionRegistry>(); getActor().__connections = getActorRef().__connections; } if ( ! __connections.contains(con) ) { __connections.add(con); if ( this instanceof RemotedActor) { String connectionIdentifier = con.getSocketRef().getConnectionIdentifier(); ((RemotedActor) this).hasBeenPublished(connectionIdentifier); } } }
@Local public void router$handleServiceDisconnect(Actor x) { if ( x.getActor() == getRemoteRef() || x.getActorRef() == getRemoteRef() ) setRemoteRef(null); }
@Local public void router$handleServiceDisconnect(Actor x) { if ( x.getActor() == getRemoteRef() || x.getActorRef() == getRemoteRef() ) setRemoteRef(null); }