All Packages This Package Class Hierarchy Class Search Index
java.lang.Object | +----edu.utah.janos.nodeos.InChannel
Summary |
public final class InChannel extends java.lang.Object { // Fields 6 private final DemultiplexKey classifier; private static final Vector classifierTable; private final DeliverFunc deliverFunc; public static final byte[] exitPacket; final Flow flow; private final ThreadPool threadPool; // Constructors 1 public InChannel(Flow, DemultiplexKey, ThreadPool, DeliverFunc); // Methods 9 private static synchronized void addClassifier(InChannel); static boolean demultiplex(UdpBuffer); public static void msgLoop(Address) throws IOException; public static void msgLoop(int) throws IOException; private static synchronized void remClassifier(InChannel); void destroy(); protected void finalize(); boolean scheduleDelivery(Buffer, int, int, int); public String toString(); // Inner Classes 1 private static class InChannel.PacketClassifierInfo }
Java wrapper for an InChannel.
Implemented on top of UDP for the moment.
See Also: CutThroughChannel, OutChannel
Cross Reference |
Fields |
· exitPacket | Summary | Top |
public static final byte[] exitPacket
Death Packet. XXX.
· classifierTable | Summary | Top |
private static final Vector classifierTable
This is a kernel-global variable. It maps Demultiplex keys to InChannels. XXX global variable
· flow | Summary | Top |
final Flow flow
The flow this receive channel is associated with.
· classifier | Summary | Top |
private final DemultiplexKey classifier
The demultiplex key associated with this channel.
· threadPool | Summary | Top |
private final ThreadPool threadPool
The ThreadPool to send incoming packets to. ThreadPool.addWork() had best be protected kernel code (i.e., final).
· deliverFunc | Summary | Top |
private final DeliverFunc deliverFunc
The callback for delivery.
Constructors |
· InChannel | Summary | Top |
public InChannel(Flow flow, DemultiplexKey classifier, ThreadPool threadPool, DeliverFunc deliverFunc)
Methods |
· addClassifier | Summary | Top |
private static synchronized void addClassifier(InChannel newChan)
· remClassifier | Summary | Top |
private static synchronized void remClassifier(InChannel deadChan)
· msgLoop | Summary | Top |
public static void msgLoop(Address localAddr) throws IOException
XXX
See Also: msgLoop
· msgLoop | Summary | Top |
public static void msgLoop(int recvPort) throws IOException
This must be run before any Channel objects are created.
XXX: shouldn't really be public
· demultiplex | Summary | Top |
static boolean demultiplex(UdpBuffer b)
I sure hope this gets better
XXX I broke this. The return value is true if the packet was dispatched *and* the target had enough resources to handle the packet. It returns false if the packet wasn't matched *or* it was matched but the target didn't have enough resources.
· scheduleDelivery | Summary | Top |
boolean scheduleDelivery(Buffer b, int packetStart, int packetLength, int payloadStart)
Schedule the given buffer b for delivery to this InChannel. A BufferHandle wrapping the packet is set up (from packetStart to packetLength). The payloadStart parameter is just a *hint* passed to the delivery function. To be meaningful, it should be relative to the packetStart.
Called by demultiplex (above) and by InChannelHandle.push().
- Returns:
- true if the buffer was scheduled, false if the target had insuffient resources.
· toString | Summary | Top |
public String toString()
- Overrides:
- toString in class Object
· destroy | Summary | Top |
void destroy()
· finalize | Summary | Top |
protected void finalize()
- Overrides:
- finalize in class Object
All Packages This Package Class Hierarchy Class Search IndexFreshly brewed Java API Documentation automatically generated with polardoc Version 1.0.7