static tom.MutableEqSet all_connections;
instance (id) alloc;
all_connections.
void
connection Connection connection
remoteProxyDead int identity
pre
!!all_connections[connection];
connection.
public _builtin_.Any root;
public Port port;
tom.MutableEqDictionary local_objects;
tom.MutableIntDictionary local_proxies;
tom.MutableIntDictionary remote_proxies;
tom.MutableIntArray unreported_deaths;
int last_proxy_ident;
id (self) initWithPort Port p;
protected tom.IntDictionary local_proxies;
_builtin_.Any (object) localObject int identity post object != nil;
identity to the other
side.
Proxy localProxyFor tom.All object pre object != nil;
object.
_builtin_.Any remoteObject int identity;
identity by the other
side.
void localProxyRelease int identity pre !!local_proxies[identity];
identity has one less
remote proxy to care for. If that number reaches zero, the local
proxy object is removed.
void remoteProxyDead int identity;
identity) of the GC
death of a remote proxy.
Note that this method is invoked during GC and that no new objects should be allocated.
redeclare ServerPort port;
port is only here for accepting connections.
id (self) initWithPort ServerPort p;
void set_root tom.All r;
void readEventOnDescriptor ServerInetPort p;
ConnectedConnection.
redeclare ConnectedPort port;
PortDecoder decoder;
PortEncoder encoder;
ServerConnection master;
boolean invalid;
TRUE, we've lost the connection.
id (self) initWithPort ConnectedPort p;
id (self)
initWithPort ConnectedPort p
for ServerConnection server;
server
connection.
protected void initDetails;
void invalidate;
ConnectedPort port;
_builtin_.Any localObject int identity;
master if we have one.
Proxy localProxyFor tom.All object;
master if we have one.
void localProxyRelease int identity pre !!master -> !![master local_proxies][identity];
master if we have one.
tom.InvocationResult forward tom.Invocation invocation;
invocation to the other side.
void readEventOnDescriptor ConnectedInetPort p;