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