public class ShortCircuitShm extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ShortCircuitShm.ShmId
Identifies a DfsClientShm.
|
class |
ShortCircuitShm.Slot
A slot containing information about a replica.
|
static class |
ShortCircuitShm.SlotId
Uniquely identifies a slot.
|
class |
ShortCircuitShm.SlotIterator |
Modifier and Type | Field and Description |
---|---|
protected static int |
BYTES_PER_SLOT |
Constructor and Description |
---|
ShortCircuitShm(ShortCircuitShm.ShmId shmId,
FileInputStream stream)
Create the ShortCircuitShm.
|
Modifier and Type | Method and Description |
---|---|
ShortCircuitShm.Slot |
allocAndRegisterSlot(ExtendedBlockId blockId)
Allocate a new slot and register it.
|
void |
free() |
ShortCircuitShm.ShmId |
getShmId() |
ShortCircuitShm.Slot |
getSlot(int slotIdx) |
boolean |
isEmpty()
Determine if this shared memory object is empty.
|
boolean |
isFull()
Determine if this shared memory object is full.
|
ShortCircuitShm.Slot |
registerSlot(int slotIdx,
ExtendedBlockId blockId)
Register a slot.
|
ShortCircuitShm.SlotIterator |
slotIterator()
Iterate over all allocated slots.
|
String |
toString() |
void |
unregisterSlot(int slotIdx)
Unregisters a slot.
|
protected static final int BYTES_PER_SLOT
public ShortCircuitShm(ShortCircuitShm.ShmId shmId, FileInputStream stream) throws IOException
shmId
- The ID to use.stream
- The stream that we're going to use to create this
shared memory segment.
Although this is a FileInputStream, we are going to
assume that the underlying file descriptor is writable
as well as readable. It would be more appropriate to use
a RandomAccessFile here, but that class does not have
any public accessor which returns a FileDescriptor,
unlike FileInputStream.IOException
public final ShortCircuitShm.ShmId getShmId()
public final boolean isEmpty()
public final boolean isFull()
public final ShortCircuitShm.Slot allocAndRegisterSlot(ExtendedBlockId blockId)
public final ShortCircuitShm.Slot getSlot(int slotIdx) throws org.apache.hadoop.fs.InvalidRequestException
org.apache.hadoop.fs.InvalidRequestException
public final ShortCircuitShm.Slot registerSlot(int slotIdx, ExtendedBlockId blockId) throws org.apache.hadoop.fs.InvalidRequestException
org.apache.hadoop.fs.InvalidRequestException
- If the slot index we're trying to allocate has not been
initialized, or is already in use.public final void unregisterSlot(int slotIdx)
slotIdx
- Index of the slot to unregister.public ShortCircuitShm.SlotIterator slotIterator()
public void free()
Copyright © 2015 Apache Software Foundation. All Rights Reserved.