|
Rice Pastry API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object rice.pastry.client.PastryAppl rice.pastry.commonapi.PastryEndpoint
public class PastryEndpoint
This class serves as gluecode, which allows applications written for the common API to work with pastry.
Field Summary | |
---|---|
protected Application |
application
|
Fields inherited from class rice.pastry.client.PastryAppl |
---|
address, deserializer, instance, logger, options, receiver, thePastryNode |
Constructor Summary | |
---|---|
PastryEndpoint(PastryNode pn,
Application application,
java.lang.String instance,
boolean register)
Constructor. |
|
PastryEndpoint(PastryNode pn,
Application application,
java.lang.String instance,
int address,
boolean register)
Constructor. |
Method Summary | |
---|---|
NodeHandle |
coalesce(NodeHandle newHandle)
|
boolean |
deliverWhenNotReady()
Instructs the MessageDispatch how to behave when the PastryNode is not ready. |
void |
destroy()
Called when PastryNode is destroyed. |
boolean |
enrouteMessage(Message msg,
Id key,
NodeHandle nextHop,
SendOptions opt)
Called by pastry when a message is enroute and is passing through this node. |
int |
getAppId()
|
MessageDeserializer |
getDeserializer()
Returns the deserializer. |
Environment |
getEnvironment()
Returns the environment. |
Id |
getId()
Returns this node's id, which is its identifier in the namespace. |
java.lang.String |
getInstance()
Returns a unique instance name of this endpoint, sort of a mailbox name for this application. |
NodeHandle |
getLocalNodeHandle()
Returns a handle to the local node below this endpoint. |
boolean |
isAlive(NodeHandle nh)
|
void |
leafSetChange(NodeHandle nh,
boolean wasAdded)
Called by pastry when the leaf set changes. |
NodeHandleSet |
localLookup(Id key,
int num,
boolean safe)
This method produces a list of nodes that can be used as next hops on a route towards key, such that the resulting route satisfies the overlay protocol's bounds on the number of hops taken. |
void |
messageForAppl(Message msg)
Called by pastry when a message arrives for this application. |
NodeHandleSet |
neighborSet(int num)
This method produces an unordered list of nodehandles that are neighbors of the local node in the ID space. |
java.util.List<NodeHandle> |
networkNeighbors(int num)
Returns an ordered list of the nearest known neighbors. |
void |
process(Executable task,
Continuation command)
Schedules a job for processing on the dedicated processing thread. |
int |
proximity(NodeHandle nh)
This replaces NodeHandle.proximity(), so that you don't have to have a "coalesced" NodeHandle. |
IdRange |
range(NodeHandle n,
int r,
Id key)
This method provides information about ranges of keys for which the node n is currently a r-root. |
IdRange |
range(NodeHandle n,
int r,
Id key,
boolean cumulative)
This method provides information about ranges of keys for which the node n is currently a r-root. |
Id |
readId(InputBuffer buf,
short type)
To use a more efficient serialization format than Java Serialization |
IdRange |
readIdRange(InputBuffer buf)
To use Raw Serialization |
NodeHandle |
readNodeHandle(InputBuffer buf)
To use Raw Serialization |
NodeHandleSet |
readNodeHandleSet(InputBuffer buf,
short type)
|
void |
receiveMessage(Message msg)
Called by pastry to deliver a message to this client. |
NodeHandleSet |
replicaSet(Id id,
int maxRank)
This method returns an ordered set of nodehandles on which replicas of the object with key can be stored. |
NodeHandleSet |
replicaSet(Id id,
int maxRank,
NodeHandle root,
NodeHandleSet set)
This methods returns an ordered set of nodehandles on which replicas of an object with a given id can be stored. |
MessageReceipt |
route(Id key,
Message msg,
NodeHandle hint)
This operation forwards a message towards the root of key. |
MessageReceipt |
route(Id key,
Message msg,
NodeHandle hint,
DeliveryNotification deliverAckToMe)
|
MessageReceipt |
route(Id key,
Message msg,
NodeHandle hint,
DeliveryNotification deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
This method makes an attempt to route the message to the root of the given id. |
MessageReceipt |
route(Id key,
RawMessage msg,
NodeHandle hint)
This duplication of the above code is to make a fast path for the RawMessage. |
MessageReceipt |
route(Id key,
RawMessage msg,
NodeHandle hint,
DeliveryNotification deliverAckToMe)
|
MessageReceipt |
route(Id key,
RawMessage msg,
NodeHandle hint,
DeliveryNotification deliverAckToMe,
java.util.Map<java.lang.String,java.lang.Object> options)
Same as the other call, but uses the Raw serialization rather than java serialization. |
boolean |
routingConsistentFor(Id id)
Can we guarantee that this id is currently ours, and routing will be consistent? Note that this has some real timing implications, so don't cache the returned value. |
CancellableTask |
scheduleMessage(Message message,
long delay)
Schedules a message to be delivered to this application after the provided number of milliseconds. |
CancellableTask |
scheduleMessage(Message message,
long delay,
long period)
Schedules a message to be delivered to this application every period number of milliseconds, after delay number of miliseconds have passed. |
CancellableTask |
scheduleMessageAtFixedRate(Message msg,
long delay,
long period)
Schedule the specified message for repeated fixed-rate delivery to the local node, beginning after the specified delay. |
void |
setConsistentRouting(boolean val)
default value is true Consistent routing causes RouteMessages to be dropped if we are not sure that we are responsible for our current id range. |
void |
setDeserializer(MessageDeserializer md)
To use a more efficient serialization format than Java Serialization |
void |
setSendOptions(java.util.Map<java.lang.String,java.lang.Object> options)
Uses these options as defaults. |
java.lang.String |
toString()
|
Methods inherited from class rice.pastry.client.PastryAppl |
---|
accept, canReceiveSocket, connect, finishReceiveSocket, getAddress, getLeafSet, getNodeHandle, getNodeId, getRoutingTable, isClosest, notifyReady, receiveMessageInternal, register, routeMsg, routeMsg, routeMsgDirect, routeSetChange |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface rice.p2p.commonapi.Endpoint |
---|
accept, connect, register |
Field Detail |
---|
protected Application application
Constructor Detail |
---|
public PastryEndpoint(PastryNode pn, Application application, java.lang.String instance, boolean register)
pn
- the pastry node that the application attaches to.public PastryEndpoint(PastryNode pn, Application application, java.lang.String instance, int address, boolean register)
pn
- the pastry node that the application attaches to.Method Detail |
---|
public Id getId()
getId
in interface Endpoint
public MessageReceipt route(Id key, Message msg, NodeHandle hint)
route
in interface Endpoint
key
- the keymsg
- the message to deliver.hint
- the hintpublic MessageReceipt route(Id key, Message msg, NodeHandle hint, DeliveryNotification deliverAckToMe)
route
in interface Endpoint
public MessageReceipt route(Id key, Message msg, NodeHandle hint, DeliveryNotification deliverAckToMe, java.util.Map<java.lang.String,java.lang.Object> options)
Endpoint
route
in interface Endpoint
key
- The destination Id of the message.msg
- The message to deliverhint
- The first node to send this message to, optionaldeliverAckToMe
- notified when the message is sent
public MessageReceipt route(Id key, RawMessage msg, NodeHandle hint)
route
in interface Endpoint
public MessageReceipt route(Id key, RawMessage msg, NodeHandle hint, DeliveryNotification deliverAckToMe)
route
in interface Endpoint
public MessageReceipt route(Id key, RawMessage msg, NodeHandle hint, DeliveryNotification deliverAckToMe, java.util.Map<java.lang.String,java.lang.Object> options)
Endpoint
route
in interface Endpoint
public CancellableTask scheduleMessage(Message message, long delay)
scheduleMessage
in interface Endpoint
message
- The message to be delivereddelay
- The number of milliseconds to wait before delivering the messagepublic CancellableTask scheduleMessage(Message message, long delay, long period)
scheduleMessage
in interface Endpoint
message
- The message to be delivereddelay
- The number of milliseconds to wait before delivering the fist messagedelay
- The number of milliseconds to wait before delivering subsequent messagespublic CancellableTask scheduleMessageAtFixedRate(Message msg, long delay, long period)
scheduleMessageAtFixedRate
in interface Endpoint
msg
- a message that will be delivered to the local node after the
specified delaydelay
- time in milliseconds before message is to be deliveredperiod
- time in milliseconds between successive message deliveries
public NodeHandleSet localLookup(Id key, int num, boolean safe)
localLookup
in interface Endpoint
key
- the message's keynum
- the maximal number of next hops nodes requestedsafe
-
public NodeHandleSet neighborSet(int num)
neighborSet
in interface Endpoint
num
- the maximal number of nodehandles requested
public NodeHandleSet replicaSet(Id id, int maxRank)
replicaSet
in interface Endpoint
key
- the keymax_rank
- the maximal number of nodehandles returned
public NodeHandleSet replicaSet(Id id, int maxRank, NodeHandle root, NodeHandleSet set)
replicaSet
in interface Endpoint
id
- The object's id.maxRank
- The number of desired replicas.handle
- The root handle of the remove setset
- The set of other nodes around the root handlepublic IdRange range(NodeHandle n, int r, Id key, boolean cumulative)
range
in interface Endpoint
n
- nodeHandle of the node whose range is being queriedr
- the rankkey
- the keycumulative
- if true, returns ranges for which n is an i-root for 0Returns:public IdRange range(NodeHandle n, int r, Id key)
range
in interface Endpoint
n
- nodeHandle of the node whose range is being queriedr
- the rankkey
- the key
public NodeHandle getLocalNodeHandle()
getLocalNodeHandle
in interface Endpoint
public final void messageForAppl(Message msg)
PastryAppl
messageForAppl
in class PastryAppl
msg
- the message that is arriving.public final boolean enrouteMessage(Message msg, Id key, NodeHandle nextHop, SendOptions opt)
PastryAppl
enrouteMessage
in class PastryAppl
msg
- the message that is passing through.key
- the keynextHop
- the default next hop for the message.opt
- the send options the message was sent with.
public void leafSetChange(NodeHandle nh, boolean wasAdded)
PastryAppl
leafSetChange
in class PastryAppl
nh
- the handle of the node that was added or removed.wasAdded
- true if the node was added, false if the node was removed.public void receiveMessage(Message msg)
receiveMessage
in class PastryAppl
msg
- the message that is arriving.public void process(Executable task, Continuation command)
process
in interface Endpoint
task
- The task to run on the processing threadcommand
- The command to return the result to once it's donepublic java.lang.String getInstance()
getInstance
in interface Endpoint
public Environment getEnvironment()
Endpoint
getEnvironment
in interface Endpoint
public java.lang.String toString()
toString
in class java.lang.Object
public void setDeserializer(MessageDeserializer md)
Endpoint
setDeserializer
in interface Endpoint
setDeserializer
in class PastryAppl
public MessageDeserializer getDeserializer()
Endpoint
getDeserializer
in interface Endpoint
getDeserializer
in class PastryAppl
public Id readId(InputBuffer buf, short type) throws java.io.IOException
Endpoint
readId
in interface Endpoint
java.io.IOException
public NodeHandle readNodeHandle(InputBuffer buf) throws java.io.IOException
NodeHandleReader
readNodeHandle
in interface Endpoint
readNodeHandle
in interface NodeHandleReader
java.io.IOException
public IdRange readIdRange(InputBuffer buf) throws java.io.IOException
Endpoint
readIdRange
in interface Endpoint
java.io.IOException
public NodeHandle coalesce(NodeHandle newHandle)
coalesce
in interface NodeHandleReader
public NodeHandleSet readNodeHandleSet(InputBuffer buf, short type) throws java.io.IOException
readNodeHandleSet
in interface Endpoint
java.io.IOException
public java.util.List<NodeHandle> networkNeighbors(int num)
Endpoint
networkNeighbors
in interface Endpoint
public void destroy()
PastryAppl
destroy
in class PastryAppl
public int proximity(NodeHandle nh)
Endpoint
proximity
in interface Endpoint
public boolean isAlive(NodeHandle nh)
isAlive
in interface Endpoint
public int getAppId()
public void setConsistentRouting(boolean val)
Endpoint
setConsistentRouting
in interface Endpoint
public boolean deliverWhenNotReady()
PastryAppl
deliverWhenNotReady
in class PastryAppl
public boolean routingConsistentFor(Id id)
Endpoint
routingConsistentFor
in interface Endpoint
public void setSendOptions(java.util.Map<java.lang.String,java.lang.Object> options)
Endpoint
setSendOptions
in interface Endpoint
|
Rice Pastry API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |