|
Rice Pastry API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object rice.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 ErrorHandler<Identifier> |
errorHandler
|
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
protected ErrorHandler<Identifier> errorHandler
Constructor Detail |
---|
public BandwidthLimitingTransportLayer(TransportLayer<Identifier,java.nio.ByteBuffer> tl, int bucketSize, int bucketTimelimit, Environment env)
bucketSize
- bytes to sendbucketTimelimit
- in millisMethod 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 acknowledgment, 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/messagespublic void incomingSocket(P2PSocket<Identifier> s) throws java.io.IOException
TransportLayerCallback
incomingSocket
in interface TransportLayerCallback<Identifier,java.nio.ByteBuffer>
s
- the incoming socket
java.io.IOException
public 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 messagepublic 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 |