|
Rice Pastry API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectrice.tutorial.transportlayer.BandwidthLimitingTransportLayer<Identifier>
public class BandwidthLimitingTransportLayer<Identifier>
| Field Summary | |
|---|---|
protected int |
bucket
When this goes to zero, don't send messages |
protected int |
BUCKET_SIZE
The size of the bucket. |
protected int |
BUCKET_TIME_LIMIT
How often the bucket is refilled. |
protected Environment |
environment
The environment |
protected Logger |
logger
|
protected TransportLayer<Identifier,java.nio.ByteBuffer> |
tl
The lower level transport layer. |
| Constructor Summary | |
|---|---|
BandwidthLimitingTransportLayer(TransportLayer<Identifier,java.nio.ByteBuffer> tl,
int bucketSize,
int bucketTimelimit,
Environment env)
To send 10K/second specify use 10240,1000 |
|
| Method Summary | |
|---|---|
void |
acceptMessages(boolean b)
Toggle accepting incoming messages. |
void |
acceptSockets(boolean b)
Toggle accepting new sockets. |
void |
destroy()
|
static PastryNodeFactory |
exampleA(int bindport,
Environment env,
NodeIdFactory nidFactory,
int amt,
int time)
|
static PastryNodeFactory |
exampleB(int bindport,
Environment env,
NodeIdFactory nidFactory,
int amt,
int time)
|
Identifier |
getLocalIdentifier()
The local node. |
void |
incomingSocket(P2PSocket<Identifier> s)
Notification of a new socket. |
void |
messageReceived(Identifier i,
java.nio.ByteBuffer m,
java.util.Map<java.lang.String,java.lang.Object> options)
Called when a new message is received. |
SocketRequestHandle<Identifier> |
openSocket(Identifier i,
SocketCallback<Identifier> deliverSocketToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
Open a socket to the Identifier |
MessageRequestHandle<Identifier,java.nio.ByteBuffer> |
sendMessage(Identifier i,
java.nio.ByteBuffer m,
MessageCallback<Identifier,java.nio.ByteBuffer> deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
Send the message to the identifier |
void |
setCallback(TransportLayerCallback<Identifier,java.nio.ByteBuffer> callback)
Set the callback for incoming sockets/messages |
void |
setErrorHandler(ErrorHandler<Identifier> handler)
To be notified of problems not related to an outgoing messaage/socket. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected TransportLayer<Identifier,java.nio.ByteBuffer> tl
protected Environment environment
protected Logger logger
protected int BUCKET_SIZE
protected int BUCKET_TIME_LIMIT
protected int bucket
| Constructor Detail |
|---|
public BandwidthLimitingTransportLayer(TransportLayer<Identifier,java.nio.ByteBuffer> tl,
int bucketSize,
int bucketTimelimit,
Environment env)
bucketSize - bytes to sendbucketTimelimit - in millis| Method Detail |
|---|
public MessageRequestHandle<Identifier,java.nio.ByteBuffer> sendMessage(Identifier i,
java.nio.ByteBuffer m,
MessageCallback<Identifier,java.nio.ByteBuffer> deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
TransportLayer
sendMessage in interface TransportLayer<Identifier,java.nio.ByteBuffer>i - the destinationm - the messagedeliverAckToMe - layer dependent notification when the message is sent (can indicate placed on the wire, point-to-point acknowledgement, or end-to-end acknowledgement)options - delivery options (don't source route, encrypt etc) (may not be respected if layer cannot provide service)
public SocketRequestHandle<Identifier> openSocket(Identifier i,
SocketCallback<Identifier> deliverSocketToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
TransportLayer
openSocket in interface TransportLayer<Identifier,java.nio.ByteBuffer>i - who to open the socket todeliverSocketToMe - the callback when the socket is openedoptions - options on how to open the socket (don't source route, encrypt etc) (may not be respected if layer cannot provide service)
public void setCallback(TransportLayerCallback<Identifier,java.nio.ByteBuffer> callback)
TransportLayer
setCallback in interface TransportLayer<Identifier,java.nio.ByteBuffer>callback - the callback for incoming sockets/messages
public void incomingSocket(P2PSocket<Identifier> s)
throws java.io.IOException
TransportLayerCallback
incomingSocket in interface TransportLayerCallback<Identifier,java.nio.ByteBuffer>s - the incoming socket
java.io.IOExceptionpublic void acceptMessages(boolean b)
TransportLayer
acceptMessages in interface TransportLayer<Identifier,java.nio.ByteBuffer>public void acceptSockets(boolean b)
TransportLayer
acceptSockets in interface TransportLayer<Identifier,java.nio.ByteBuffer>public Identifier getLocalIdentifier()
TransportLayer
getLocalIdentifier in interface TransportLayer<Identifier,java.nio.ByteBuffer>public void setErrorHandler(ErrorHandler<Identifier> handler)
TransportLayer
setErrorHandler in interface TransportLayer<Identifier,java.nio.ByteBuffer>handler - to be notified of problems not related to a specific messaage/socket.public void destroy()
destroy in interface Destructable
public void messageReceived(Identifier i,
java.nio.ByteBuffer m,
java.util.Map<java.lang.String,java.lang.Object> options)
throws java.io.IOException
TransportLayerCallback
messageReceived in interface TransportLayerCallback<Identifier,java.nio.ByteBuffer>i - The node it is coming fromm - the messageoptions - describe how the message arrived (udp/tcp, encrypted etc)
java.io.IOException - if there is a problem decoding the message
public static PastryNodeFactory exampleA(int bindport,
Environment env,
NodeIdFactory nidFactory,
int amt,
int time)
throws java.io.IOException
java.io.IOException
public static PastryNodeFactory exampleB(int bindport,
Environment env,
NodeIdFactory nidFactory,
int amt,
int time)
throws java.io.IOException
java.io.IOException
|
Rice Pastry API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||