|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.Observable
rice.pastry.PastryNode
A Pastry node is single entity in the pastry network.
Field Summary | |
protected java.util.Vector |
apps
DESCRIBE THE FIELD |
static java.lang.String |
EC_NO_CODE_AVAILABLE
DESCRIBE THE FIELD |
protected NodeHandle |
localhandle
DESCRIBE THE FIELD |
protected NodeId |
myNodeId
DESCRIBE THE FIELD |
protected java.util.WeakHashMap |
nodeHandleSet
This hash map helps us coalesce the nodeHandles so that there is only one reference of each maps NodeHandle -> WeakReference(NodeHandle) |
Constructor Summary | |
protected |
PastryNode(NodeId id)
Constructor, with NodeId. |
Method Summary | |
void |
addLeafSetObserver(java.util.Observer o)
Add a leaf set observer to the Pastry node. |
void |
addRouteSetObserver(java.util.Observer o)
Add a route set observer to the Pastry node. |
void |
deleteLeafSetObserver(java.util.Observer o)
Delete a leaf set observer from the Pastry node. |
void |
deleteRouteSetObserver(java.util.Observer o)
Delete a route set observer from the Pastry node. |
java.lang.String |
getErrorString(int errorCode)
Gets the ErrorString attribute of the PastryNode object |
Id |
getId()
Returns the Id of this node |
IdFactory |
getIdFactory()
Returns a factory for Ids specific to this node's protocol. |
LeafSet |
getLeafSet()
Gets the LeafSet attribute of the PastryNode object |
NodeHandle |
getLocalHandle()
Gets the LocalHandle attribute of the PastryNode object |
NodeHandle |
getLocalNodeHandle()
Gets the LocalNodeHandle attribute of the PastryNode object |
LocalNodeI |
getLocalNodeI(LocalNodeI lni)
Gets the LocalNodeI attribute of the PastryNode object |
MessageDispatch |
getMessageDispatch()
FOR TESTING ONLY - DO NOT USE! |
NodeId |
getNodeId()
Gets the NodeId attribute of the PastryNode object |
RoutingTable |
getRoutingTable()
Gets the RoutingTable attribute of the PastryNode object |
abstract void |
initiateJoin(NodeHandle bootstrap)
Overridden by derived classes to initiate the join process |
boolean |
isClosest(NodeId key)
Called by the layered Pastry application to check if the local pastry node is the one that is currently closest to the object key id. |
boolean |
isReady()
Gets the Ready attribute of the PastryNode object |
void |
messageNotSent(Message m,
int errorCode)
DESCRIBE THE METHOD |
abstract void |
nodeIsReady()
Overridden by derived classes, and invoked when the node has joined successfully. |
void |
nodeIsReady(boolean state)
Overridden by derived classes, and invoked when the node has joined successfully. |
void |
process(Executable task,
Continuation command)
Schedules a job for processing on the dedicated processing thread, should one exist. |
void |
receiveMessage(Message msg)
message receiver interface. |
void |
registerApp(PastryAppl app)
Registers an application with this pastry node. |
Endpoint |
registerApplication(Application application,
int port)
This returns a Endpoint specific to the given application and instance name to the application, which the application can then use in order to send an receive messages. |
Endpoint |
registerApplication(Application application,
java.lang.String instance)
This returns a VirtualizedNode specific to the given application and instance name to the application, which the application can then use in order to send an receive messages. |
void |
registerReceiver(Credentials cred,
Address address,
MessageReceiver receiver)
Registers a message receiver with this Pastry node. |
void |
resign()
Method which kills a PastryNode (used only for testing). |
abstract ScheduledMessage |
scheduleMsg(Message msg,
long delay)
Schedule the specified message to be sent to the local node after a specified delay. |
abstract ScheduledMessage |
scheduleMsg(Message msg,
long delay,
long period)
Schedule the specified message for repeated fixed-delay delivery to the local node, beginning after the specified delay. |
abstract ScheduledMessage |
scheduleMsgAtFixedRate(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 |
setElements(NodeHandle lh,
PastrySecurityManager sm,
MessageDispatch md,
LeafSet ls,
RoutingTable rt)
Combined accessor method for various members of PastryNode. |
void |
setMessageDispatch(MessageDispatch md)
Sets the MessageDispatch attribute of the PastryNode object |
void |
setReady()
Sets the Ready attribute of the PastryNode object |
void |
setReady(boolean r)
Sets the Ready attribute of the PastryNode object |
java.lang.String |
toString()
DESCRIBE THE METHOD |
Methods inherited from class java.util.Observable |
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected NodeId myNodeId
protected NodeHandle localhandle
protected java.util.Vector apps
protected java.util.WeakHashMap nodeHandleSet
public static java.lang.String EC_NO_CODE_AVAILABLE
Constructor Detail |
protected PastryNode(NodeId id)
id
- DESCRIBE THE PARAMETERMethod Detail |
public LocalNodeI getLocalNodeI(LocalNodeI lni)
lni
- DESCRIBE THE PARAMETER
public NodeHandle getLocalNodeHandle()
getLocalNodeHandle
in interface Node
public NodeHandle getLocalHandle()
public NodeId getNodeId()
public boolean isReady()
public MessageDispatch getMessageDispatch()
public boolean isClosest(NodeId key)
key
- the object key id
public LeafSet getLeafSet()
public RoutingTable getRoutingTable()
public Id getId()
getId
in interface Node
public IdFactory getIdFactory()
getIdFactory
in interface Node
public java.lang.String getErrorString(int errorCode)
errorCode
- DESCRIBE THE PARAMETER
public void setElements(NodeHandle lh, PastrySecurityManager sm, MessageDispatch md, LeafSet ls, RoutingTable rt)
lh
- Node handle corresponding to this node.sm
- Security manager.md
- Message dispatcher.ls
- Leaf set.rt
- Routing table.public void setMessageDispatch(MessageDispatch md)
md
- The new MessageDispatch valuepublic void setReady()
public void setReady(boolean r)
r
- The new Ready valuepublic abstract void nodeIsReady()
public void nodeIsReady(boolean state)
state
- true when the node is ready, false when notpublic abstract void initiateJoin(NodeHandle bootstrap)
bootstrap
- Node handle to bootstrap with.public void addLeafSetObserver(java.util.Observer o)
o
- the observer.public void deleteLeafSetObserver(java.util.Observer o)
o
- the observer.public void addRouteSetObserver(java.util.Observer o)
o
- the observer.public void deleteRouteSetObserver(java.util.Observer o)
o
- the observer.public void receiveMessage(Message msg)
receiveMessage
in interface MessageReceiver
msg
- DESCRIBE THE PARAMETERpublic void registerReceiver(Credentials cred, Address address, MessageReceiver receiver)
cred
- the credentials.address
- the address that the receiver will be at.receiver
- the message receiver.public void registerApp(PastryAppl app)
app
- the applicationpublic abstract ScheduledMessage scheduleMsg(Message msg, long delay)
msg
- a message that will be delivered to the local node after the
specified delaydelay
- time in milliseconds before message is to be delivered
public abstract ScheduledMessage scheduleMsg(Message msg, long delay, long period)
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 abstract ScheduledMessage scheduleMsgAtFixedRate(Message msg, long delay, long period)
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 java.lang.String toString()
public Endpoint registerApplication(Application application, java.lang.String instance)
registerApplication
in interface Node
application
- The Applicationinstance
- An identifier for a given instance
public Endpoint registerApplication(Application application, int port)
registerApplication
in interface Node
application
- The Applicationport
- The port to use
public void messageNotSent(Message m, int errorCode)
m
- DESCRIBE THE PARAMETERerrorCode
- DESCRIBE THE PARAMETERpublic void process(Executable task, Continuation command)
task
- The task to run on the processing threadcommand
- The command to return the result to once it's donepublic void resign()
|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |