|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.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 |
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,
Environment e)
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. |
void |
destroy()
Method which kills a PastryNode. |
Environment |
getEnvironment()
Gets the Environment 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 |
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. |
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
Constructor Detail |
protected PastryNode(NodeId id, Environment e)
id
- DESCRIBE THE PARAMETERe
- DESCRIBE THE PARAMETERMethod Detail |
public LocalNodeI getLocalNodeI(LocalNodeI lni)
lni
- DESCRIBE THE PARAMETER
public NodeHandle getLocalNodeHandle()
getLocalNodeHandle
in interface Node
public Environment getEnvironment()
getEnvironment
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 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 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 destroy()
|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |