APIdia Launch Partner
Top Description Fields Constructors Methods
sun.rmi.transport

pack-priv Class ConnectionInputStream

extends MarshalInputStream
Class Inheritance
Imports
java.io.*, java.util.*, java.rmi.RemoteException, java.rmi.server.UID, sun.rmi.server.MarshalInputStream, sun.rmi.runtime.Log

Special stream to keep track of refs being unmarshaled so that refs can be ref-counted locally.
Author
Ann Wollrath

Field Summary

Modifier and TypeField and Description
private UID
ackID

identifier for gc ack

private boolean
dgcAckNeeded

indicates whether ack is required for DGC

private Map<Endpoint, List<LiveRef>>
incomingRefTable

Hashtable mapping Endpoints to lists of LiveRefs to register

Inherited from sun.rmi.server.MarshalInputStream:
permittedSunClasses

Constructor Summary

AccessConstructor and Description
pack-priv
ConnectionInputStream(InputStream in)

Constructs a marshal input stream using the underlying stream "in".

Method Summary

Modifier and TypeMethod and Description
pack-priv void
discardRefs()

Discard the saved incoming refs so there is nothing to register when registerRefs is called.

pack-priv void
done(Connection c)

Done with input stream for remote call.

pack-priv void
pack-priv void
registerRefs()

Add references to DGC table (and possibly send dirty call).

pack-priv void
saveRef(LiveRef ref)

Save reference in order to send "dirty" call after all args/returns have been unmarshaled.

pack-priv void
setAckNeeded()

Indicate that an ack is required to the distributed collector.

Inherited from sun.rmi.server.MarshalInputStream:
closedonegetDoneCallbackreadLocationresolveClassresolveProxyClasssetDoneCallback

Field Detail

ackIDback to summary
private UID ackID

identifier for gc ack

dgcAckNeededback to summary
private boolean dgcAckNeeded

indicates whether ack is required for DGC

incomingRefTableback to summary
private Map<Endpoint, List<LiveRef>> incomingRefTable

Hashtable mapping Endpoints to lists of LiveRefs to register

Constructor Detail

ConnectionInputStreamback to summary
pack-priv ConnectionInputStream(InputStream in) throws IOException

Constructs a marshal input stream using the underlying stream "in".

Method Detail

discardRefsback to summary
pack-priv void discardRefs()

Discard the saved incoming refs so there is nothing to register when registerRefs is called.

doneback to summary
pack-priv void done(Connection c)

Done with input stream for remote call. Send DGC ack if necessary. Allow sending of ack to fail without flagging an error.

readIDback to summary
pack-priv void readID() throws IOException
registerRefsback to summary
pack-priv void registerRefs() throws IOException

Add references to DGC table (and possibly send dirty call). RegisterRefs now calls DGCClient.referenced on all refs with the same endpoint at once to achieve batching of calls to the DGC

saveRefback to summary
pack-priv void saveRef(LiveRef ref)

Save reference in order to send "dirty" call after all args/returns have been unmarshaled. Save in hashtable incomingRefTable. This table is keyed on endpoints, and holds objects of type IncomingRefTableEntry.

setAckNeededback to summary
pack-priv void setAckNeeded()

Indicate that an ack is required to the distributed collector.