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;