OverSim
|
NICE overlay module. More...
#include <Nice.h>
Public Types | |
typedef std::set < TransportAddress > | TaSet |
typedef std::set < TransportAddress >::iterator | TaSetIt |
Public Types inherited from BaseOverlay | |
enum | States { INIT = 0, BOOTSTRAP = 1, DISCOVERY = 2, PREJOIN = 3, JOIN = 4, POSTJOIN = 5, READY = 6, REFRESH = 7, SHUTDOWN = 8, FAILED = 9, RSET = JOIN, BSET = POSTJOIN } |
Public Types inherited from BaseTcpSupport | |
enum | EvCode { NO_EST_CONNECTION, PEER_CLOSED, PEER_TIMEDOUT, PEER_REFUSED, CONNECTION_RESET, CONNECTION_SUCC_ClOSED } |
Public Member Functions | |
Nice () | |
virtual | ~Nice () |
virtual void | initializeOverlay (int stage) |
Initializes derived-class-attributes. | |
virtual void | handleTimerEvent (cMessage *msg) |
virtual void | handleUDPMessage (BaseOverlayMessage *msg) |
Processes messages from underlay. | |
virtual void | handleAppMessage (cMessage *msg) |
Processes "timer" self-messages. | |
virtual void | finishOverlay () |
collects statistical data in derived class | |
Public Member Functions inherited from BaseOverlay | |
BaseOverlay () | |
virtual | ~BaseOverlay () |
Virtual destructor. | |
States | getState () |
bool | isMalicious () |
Returns true, if node is malicious. | |
bool | isInSimpleMultiOverlayHost () |
Returns true if overlay is one in an array, inside a SimpleMultiOverlayHost. | |
const simtime_t & | getCreationTime () |
void | join (const OverlayKey &nodeID=OverlayKey::UNSPECIFIED_KEY) |
Join the overlay with a given nodeID. | |
virtual NodeVector * | local_lookup (const OverlayKey &key, int num, bool safe) |
finds nodes closest to the given OverlayKey | |
virtual NodeVector * | neighborSet (int num) |
virtual bool | isSiblingFor (const NodeHandle &node, const OverlayKey &key, int numSiblings, bool *err) |
Query if a node is among the siblings for a given key. | |
virtual int | getMaxNumSiblings () |
Query the maximum number of siblings (nodes close to a key) that are maintained by this overlay protocol. | |
virtual int | getMaxNumRedundantNodes () |
Query the maximum number of redundant next hop nodes that are returned by findNode(). | |
void | sendMessageToUDP (const TransportAddress &dest, cPacket *msg, simtime_t delay=SIMTIME_ZERO) |
Sends message to underlay. | |
void | sendToKey (const OverlayKey &key, BaseOverlayMessage *message, int numSiblings=1, const std::vector< TransportAddress > &sourceRoute=TransportAddress::UNSPECIFIED_NODES, RoutingType routingType=DEFAULT_ROUTING) |
Sends a message to an overlay node, with the generic routing algorithm. | |
virtual OverlayKey | distance (const OverlayKey &x, const OverlayKey &y, bool useAlternative=false) const |
This method should implement the distance between two keys. | |
void | registerComp (CompType compType, cModule *module) |
cModule * | getCompModule (CompType compType) |
cGate * | getCompRpcGate (CompType compType) |
void | sendMessageToAllComp (cMessage *msg, CompType srcComp) |
bool | providesKbr () |
virtual uint8_t | getBitsPerDigit () |
bool | getMeasureAuthBlock () |
BootstrapList & | getBootstrapList () const |
virtual OverlayKey | estimateMeanDistance () |
returns mean distance between OverlayKeys in the network | |
virtual uint32_t | estimateOverlaySize () |
estimates the current number of nodes online | |
Public Member Functions inherited from BaseRpc | |
BaseRpc () | |
const NodeHandle & | getThisNode () |
Returns the NodeHandle of this node. | |
simtime_t | getUdpTimeout () |
Public Member Functions inherited from RpcListener | |
virtual | ~RpcListener () |
destructor | |
Public Member Functions inherited from BaseTcpSupport | |
virtual void | socketDataArrived (int connId, void *yourPtr, cPacket *msg, bool urgent) |
virtual void | socketEstablished (int connId, void *yourPtr) |
virtual void | socketPeerClosed (int connId, void *yourPtr) |
virtual void | socketFailure (int connId, void *yourPtr, int code) |
virtual void | socketStatusArrived (int connId, void *yourPtr, TCPStatusInfo *status) |
Public Member Functions inherited from TopologyVis | |
TopologyVis () | |
void | showOverlayNeighborArrow (const NodeHandle &neighbor, bool flush=true, const char *displayString=NULL) |
Draws an arrow from this node to neighbor. | |
void | deleteOverlayNeighborArrow (const NodeHandle &neighbor) |
Removes an arrow from this node to neighbor. |
Protected Member Functions | |
virtual void | changeState (int toState) |
changes node state | |
virtual void | joinOverlay () |
Join the overlay with a given nodeID in thisNode.key. | |
virtual void | handleNodeLeaveNotification () |
This method gets call **.gracefulLeaveDelay seconds before it is killed. | |
Protected Member Functions inherited from BaseOverlay | |
int | numInitStages () const |
Sets init stage. | |
void | bindToPort (int port) |
Tells UDP we want to get all packets arriving on the given port. | |
virtual void | route (const OverlayKey &key, CompType destComp, CompType srcComp, cPacket *msg, const std::vector< TransportAddress > &sourceRoute=TransportAddress::UNSPECIFIED_NODES, RoutingType routingType=DEFAULT_ROUTING) |
Routes message through overlay. | |
void | callDeliver (BaseOverlayMessage *msg, const OverlayKey &destKey) |
Calls deliver function in application. | |
void | callForward (const OverlayKey &key, BaseRouteMessage *msg, const NodeHandle &nextHopNode) |
Calls forward function in application. | |
void | callUpdate (const NodeHandle &node, bool joined) |
Informs application about state changes of nodes or newly joined nodes. | |
void | handleMessage (cMessage *msg) |
Checks for message type and calls corresponding method. | |
void | handleBaseOverlayMessage (BaseOverlayMessage *msg, const OverlayKey &destKey=OverlayKey::UNSPECIFIED_KEY) |
Handles a BaseOverlayMessage | |
virtual void | receiveChangeNotification (int category, const cPolymorphic *details) |
callback-method for events at the NotificationBoard | |
virtual void | handleTransportAddressChangedNotification () |
This method gets call if the node has a new TransportAddress (IP address) because he changed his access network. | |
virtual void | handleNodeGracefulLeaveNotification () |
This method gets call **.gracefulLeaveDelay seconds before it is killed if this node is among the gracefulLeaveProbability nodes. | |
virtual void | recordOverlaySentStats (BaseOverlayMessage *msg) |
Collect overlay specific sent messages statistics. | |
void | setOverlayReady (bool ready) |
Sets the overlay ready icon and register/deregisters the node at the GlobalNodeList. | |
virtual AbstractLookup * | createLookup (RoutingType routingType=DEFAULT_ROUTING, const BaseOverlayMessage *msg=NULL, const cPacket *findNodeExt=NULL, bool appLookup=false) |
Creates an abstract iterative lookup instance. | |
virtual void | removeLookup (AbstractLookup *lookup) |
Removes the abstract lookup instance. | |
virtual NodeVector * | findNode (const OverlayKey &key, int numRedundantNodes, int numSiblings, BaseOverlayMessage *msg=NULL) |
Implements the find node call. | |
virtual void | joinForeignPartition (const NodeHandle &node) |
Join another overlay partition with the given node as bootstrap node. | |
virtual bool | handleFailedNode (const TransportAddress &failed) |
Handles a failed node. | |
virtual void | lookupRpc (LookupCall *call) |
virtual void | nextHopRpc (NextHopCall *call) |
void | countFindNodeCall (const FindNodeCall *call) |
void | countFailedNodeCall (const FailedNodeCall *call) |
bool | internalHandleRpcCall (BaseCallMessage *msg) |
Handles internal rpc requests. | |
void | internalHandleRpcResponse (BaseResponseMessage *msg, cPolymorphic *context, int rpcId, simtime_t rtt) |
Handles rpc responses internal in base classes | |
void | internalHandleRpcTimeout (BaseCallMessage *msg, const TransportAddress &dest, cPolymorphic *context, int rpcId, const OverlayKey &destKey) |
Handles rpc timeouts internal in base classes | |
void | internalSendRouteRpc (BaseRpcMessage *message, const OverlayKey &destKey, const std::vector< TransportAddress > &sourceRoute, RoutingType routingType) |
CompType | getThisCompType () |
Return the component type of this module. | |
Protected Member Functions inherited from BaseRpc | |
void | initRpcs () |
Initializes Remote-Procedure state. | |
void | finishRpcs () |
Deinitializes Remote-Procedure state. | |
virtual void | internalHandleRpcMessage (BaseRpcMessage *msg) |
Handles incoming rpc messages and delegates them to the corresponding listeners or handlers. | |
uint32_t | sendRouteRpcCall (CompType destComp, const TransportAddress &dest, const OverlayKey &destKey, BaseCallMessage *msg, cPolymorphic *context=NULL, RoutingType routingType=DEFAULT_ROUTING, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
Routes a Remote-Procedure-Call message to an OverlayKey. | |
uint32_t | sendRouteRpcCall (CompType destComp, const OverlayKey &destKey, BaseCallMessage *msg, cPolymorphic *context=NULL, RoutingType routingType=DEFAULT_ROUTING, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
Routes a Remote-Procedure-Call message to an OverlayKey. | |
uint32_t | sendRouteRpcCall (CompType destComp, const TransportAddress &dest, BaseCallMessage *msg, cPolymorphic *context=NULL, RoutingType routingType=DEFAULT_ROUTING, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
Sends a Remote-Procedure-Call message using the overlay's UDP port This replaces ROUTE_DIRECT calls! | |
uint32_t | sendUdpRpcCall (const TransportAddress &dest, BaseCallMessage *msg, cPolymorphic *context=NULL, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
Sends a Remote-Procedure-Call message to the underlay | |
uint32_t | sendInternalRpcCall (CompType destComp, BaseCallMessage *msg, cPolymorphic *context=NULL, simtime_t timeout=-1, int retries=0, int rpcId=-1, RpcListener *rpcListener=NULL) |
Sends an internal Remote-Procedure-Call between two tiers | |
void | cancelRpcMessage (uint32_t nonce) |
Cancels a Remote-Procedure-Call. | |
void | cancelAllRpcs () |
Cancels all RPCs. | |
void | sendRpcResponse (TransportType transportType, CompType destComp, const TransportAddress &dest, const OverlayKey &destKey, BaseCallMessage *call, BaseResponseMessage *response) |
Send Remote-Procedure response message and deletes call message. | |
void | sendRpcResponse (BaseCallMessage *call, BaseResponseMessage *response) |
Send Remote-Procedure response message to UDP and deletes call message. | |
int | pingNode (const TransportAddress &dest, simtime_t timeout=-1, int retries=0, cPolymorphic *context=NULL, const char *caption="PING", RpcListener *rpcListener=NULL, int rpcId=-1, TransportType transportType=INVALID_TRANSPORT) |
ping a node by its TransportAddress | |
virtual bool | handleRpcCall (BaseCallMessage *msg) |
Processes Remote-Procedure-Call invocation messages. | |
virtual void | pingResponse (PingResponse *pingResponse, cPolymorphic *context, int rpcId, simtime_t rtt) |
virtual void | pingTimeout (PingCall *pingCall, const TransportAddress &dest, cPolymorphic *context, int rpcId) |
bool | internalHandleMessage (cMessage *msg) |
Protected Member Functions inherited from RpcListener | |
virtual void | handleRpcResponse (BaseResponseMessage *msg, cPolymorphic *context, int rpcId, simtime_t rtt) |
This method is called if an RPC response has been received. | |
virtual void | handleRpcResponse (BaseResponseMessage *msg, const RpcState &rpcState, simtime_t rtt) |
This method is called if an RPC response has been received. | |
virtual void | handleRpcTimeout (BaseCallMessage *msg, const TransportAddress &dest, cPolymorphic *context, int rpcId, const OverlayKey &destKey) |
This method is called if an RPC timeout has been reached. | |
virtual void | handleRpcTimeout (const RpcState &rpcState) |
This method is called if an RPC timeout has been reached. | |
Protected Member Functions inherited from BaseTcpSupport | |
void | handleTCPMessage (cMessage *msg) |
Member function to handle incoming TCP messages. | |
void | bindAndListenTcp (int port) |
Member function to bind service to the specified port and listen afterwards. | |
bool | isAlreadyConnected (TransportAddress address) |
Member function to check if the service is already connected. | |
void | establishTcpConnection (TransportAddress address) |
Member function to establish a connection to the specified node. | |
void | sendTcpData (cPacket *msg, TransportAddress address) |
Member function to send TCP data to the specified node. | |
virtual void | handleConnectionEvent (EvCode code, TransportAddress address) |
Member function to handle passive connection events. | |
virtual void | handleDataReceived (TransportAddress address, cPacket *msg, bool urgent) |
Member function to handle incoming data. | |
virtual void | handleIncomingConnection (TransportAddress address) |
Member function to handle newly opened connections. | |
void | closeTcpConnection (TransportAddress address) |
Member function to close an established connection. | |
void | setTcpOut (cGate *gate) |
Member function to set local gate towards the TCP module during init phase. | |
cGate * | getTcpOut () |
Member function to get local gate towards the TCP module. | |
Protected Member Functions inherited from TopologyVis | |
void | initVis (cModule *terminal) |
Private Member Functions | |
void | updateVisualization () |
int | getHighestLeaderLayer () |
int | getHighestLayer () |
void | BasicJoinLayer (short layer) |
void | ClusterSplit (int layer) |
void | Query (const TransportAddress &node, short layer) |
void | handleNiceClusterMergeRequest (NiceClusterMerge *mergeMsg) |
void | handleNiceForceMerge (NiceMessage *msg) |
void | handleNiceHeartbeat (NiceHeartbeat *msg) |
void | handleNiceLeaderHeartbeat (NiceLeaderHeartbeat *lhbMsg) |
void | handleNiceLeaderTransfer (NiceLeaderHeartbeat *transferMsg) |
void | handleNiceJoinCluster (NiceMessage *joinMsg) |
void | handleNiceJoineval (NiceMessage *msg) |
void | handleNiceJoinevalResponse (NiceMessage *msg) |
void | handleNiceLeaderHeartbeatOrTransfer (NiceMessage *msg) |
void | handleNiceMulticast (NiceMulticastMessage *multicastMsg) |
void | handleNicePeerTemporary (NiceMessage *msg) |
void | handleNicePeerTemporaryRelease (NiceMessage *msg) |
void | handleNicePingProbe (NiceMessage *msg) |
void | handleNicePingProbeResponse (NiceMessage *msg) |
void | handleNicePollRp (NiceMessage *msg) |
void | handleNicePollRpResponse (NiceMessage *msg) |
void | handleNiceQuery (NiceMessage *queryMsg) |
void | handleNiceQueryResponse (NiceMemberMessage *queryRspMsg) |
void | handleNiceRemove (NiceMessage *msg) |
void | JoinCluster (const TransportAddress &leader, short layer) |
void | sendHeartbeats () |
void | cleanPeers () |
Cleans the tempPeers map from peers that have timed out, removes timed-out peers in peerInfos and also removes them from the clusters. | |
bool | splitNeeded () |
Splits clusters if needed. | |
bool | mergeNeeded () |
Merges clusters if needed. | |
bool | checkLeaderHeartbeatsForCollisions (NiceLeaderHeartbeat *hbMsg) |
Checks if we have received conflicting leader heartbeats. | |
void | maintenance () |
simtime_t | getMaxDistance (TransportAddress member, const std::set< TransportAddress > &neighbors) |
template<class ConstIter > | |
simtime_t | getMaxDistance (TransportAddress member, ConstIter neighborsBegin, ConstIter neighborsEnd) |
simtime_t | getMeanDistance (std::set< TransportAddress > neighbors) |
void | LeaderTransfer (int layer, TransportAddress leader, TaSet cluster, TransportAddress sc_leader, TaSet superCluster) |
void | LeaderTransfer (int layer, TransportAddress leader) |
void | Remove (int layer) |
void | sendHeartbeatTo (const TransportAddress &node, int layer) |
void | sendRemoveTo (const TransportAddress &node, int layer) |
sendRemoveTo | |
void | ClusterMerge (int layer) |
void | ClusterMergeRequest (const TransportAddress &node, int layer) |
void | gracefulLeave (short bottomLayer) |
std::pair< TransportAddress, simtime_t > | findCenter (TaSet cluster, bool allowRandom=false) |
std::pair< TransportAddress, simtime_t > | findCenter (std::vector< TransportAddress > cluster, bool allowRandom=false) |
std::pair< TransportAddress, simtime_t > | findCenter (const NiceCluster &cluster, bool allowRandom=false) |
template<class ConstIter > | |
std::pair< TransportAddress, simtime_t > | findCenter (ConstIter begin, ConstIter end, bool allowRandom=false) |
void | sendDataToOverlay (NiceMulticastMessage *appMsg) |
void | pollRP (int layer) |
Static Private Attributes | |
static const short | maxLayers = 10 |
Friends | |
class | NicePeerInfo |
Additional Inherited Members | |
Protected Types inherited from BaseOverlay | |
typedef UNORDERED_SET < AbstractLookup *, lookupHashFcn, lookupHashFcn > | LookupSet |
Protected Attributes inherited from BaseOverlay | |
int | numAppDataForwarded |
number of forwarded app data packets | |
int | bytesAppDataForwarded |
number of forwarded app data bytes at out-gate | |
int | numAppLookupForwarded |
number of forwarded app lookup packets | |
int | bytesAppLookupForwarded |
number of forwarded app lookup bytes at out-gate | |
int | numMaintenanceForwarded |
number of forwarded maintenance packets | |
int | bytesMaintenanceForwarded |
number of forwarded maintenance bytes at out-gate | |
int | numFindNodeSent |
int | bytesFindNodeSent |
int | numFindNodeResponseSent |
int | bytesFindNodeResponseSent |
int | numFailedNodeSent |
int | bytesFailedNodeSent |
int | numFailedNodeResponseSent |
int | bytesFailedNodeResponseSent |
std::vector< HopDelayRecord * > | singleHopDelays |
simtime_t | creationTime |
simtime when the node has been created | |
GlobalNodeList * | globalNodeList |
pointer to GlobalNodeList in this node | |
NotificationBoard * | notificationBoard |
pointer to NotificationBoard in this node | |
UnderlayConfigurator * | underlayConfigurator |
pointer to UnderlayConfigurator in this node | |
BootstrapList * | bootstrapList |
pointer to the BootstrapList module | |
GlobalParameters * | globalParameters |
pointer to the GlobalParameters module | |
uint32_t | overlayId |
identifies the overlay this node belongs to (used for multiple overlays) | |
bool | debugOutput |
debug output ? | |
RoutingType | defaultRoutingType |
bool | useCommonAPIforward |
forward messages to applications? | |
bool | collectPerHopDelay |
collect delay for single hops | |
bool | routeMsgAcks |
send ACK when receiving route message | |
uint32_t | recNumRedundantNodes |
numRedundantNodes for recursive routing | |
bool | recordRoute |
record visited hops on route | |
bool | drawOverlayTopology |
bool | rejoinOnFailure |
bool | sendRpcResponseToLastHop |
needed by KBR protocols for NAT support | |
bool | dropFindNodeAttack |
if node is malicious, it tries a findNode attack | |
bool | isSiblingAttack |
if node is malicious, it tries a isSibling attack | |
bool | invalidNodesAttack |
if node is malicious, it tries a invalidNode attack | |
bool | dropRouteMessageAttack |
if node is malicious, it drops all received BaseRouteMessages | |
int | localPort |
used UDP-port | |
int | hopCountMax |
maximum hop count | |
bool | measureAuthBlock |
if true, measure the overhead of signatures in rpc messages | |
bool | restoreContext |
if true, a node rejoins with its old nodeId and malicious state | |
int | numDropped |
number of dropped packets | |
int | bytesDropped |
number of dropped bytes | |
cOutVector | delayVector |
statistical output vector for packet-delays | |
cOutVector | hopCountVector |
statistical output vector for hop-counts | |
States | state |
IterativeLookupConfiguration | iterativeLookupConfig |
RecursiveLookupConfiguration | recursiveLookupConfig |
LookupSet | lookups |
bool | kbr |
set this to true, if the overlay provides KBR services |
NICE overlay module.
Implementation of the NICE overlay as described in "Scalable Application Layer Multicast" by S. Banerjee and B. Bhattacharjee and C. Kommareddy, published at SIGCOMM'02, 2002.
typedef std::set<TransportAddress> oversim::Nice::TaSet |
typedef std::set<TransportAddress>::iterator oversim::Nice::TaSetIt |
oversim::Nice::Nice | ( | ) |
Definition at line 72 of file Nice.cc.
|
virtual |
Definition at line 97 of file Nice.cc.
|
private |
Definition at line 555 of file Nice.cc.
Referenced by changeState(), handleNiceLeaderTransfer(), and maintenance().
|
protectedvirtual |
changes node state
toState | state to change to |
Definition at line 248 of file Nice.cc.
Referenced by handleNiceQueryResponse(), and joinOverlay().
|
private |
Checks if we have received conflicting leader heartbeats.
checkLeaderHeartbeatsForCollisions
Returns true if a collision was detected.
Definition at line 2263 of file Nice.cc.
|
private |
Cleans the tempPeers map from peers that have timed out, removes timed-out peers in peerInfos and also removes them from the clusters.
cleanPeers
Definition at line 2150 of file Nice.cc.
Referenced by maintenance().
|
private |
Definition at line 2868 of file Nice.cc.
Referenced by mergeNeeded().
|
private |
Definition at line 2936 of file Nice.cc.
Referenced by ClusterMerge(), and handleNiceForceMerge().
|
private |
Definition at line 2621 of file Nice.cc.
Referenced by splitNeeded().
|
private |
Definition at line 2971 of file Nice.cc.
Referenced by ClusterSplit(), findCenter(), gracefulLeave(), and maintenance().
|
private |
|
private |
|
private |
Definition at line 2998 of file Nice.cc.
|
virtual |
collects statistical data in derived class
Reimplemented from BaseOverlay.
Definition at line 521 of file Nice.cc.
|
private |
Definition at line 1642 of file Nice.cc.
Referenced by changeState(), ClusterMerge(), ClusterSplit(), getHighestLeaderLayer(), gracefulLeave(), handleNiceLeaderHeartbeat(), handleNicePingProbeResponse(), maintenance(), Remove(), sendDataToOverlay(), sendHeartbeats(), and updateVisualization().
|
private |
Definition at line 1628 of file Nice.cc.
Referenced by gracefulLeave(), handleNiceClusterMergeRequest(), handleNicePollRp(), handleNiceQuery(), maintenance(), mergeNeeded(), and splitNeeded().
|
private |
Definition at line 3075 of file Nice.cc.
Referenced by findCenter(), and maintenance().
|
private |
Definition at line 3031 of file Nice.cc.
|
private |
Definition at line 3083 of file Nice.cc.
Referenced by maintenance().
|
private |
Definition at line 3234 of file Nice.cc.
Referenced by ClusterMerge(), ClusterSplit(), handleNiceLeaderHeartbeat(), and maintenance().
|
virtual |
Processes "timer" self-messages.
msg | A self-message Processes non-commonAPI messages |
msg | non-commonAPIMessage |
Reimplemented from BaseOverlay.
Definition at line 3300 of file Nice.cc.
|
private |
Definition at line 755 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 862 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 869 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1282 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1348 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1362 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 928 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
|
private |
Definition at line 1117 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1385 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1416 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1424 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1433 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1457 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1478 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1494 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 623 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1506 of file Nice.cc.
Referenced by handleUDPMessage().
|
private |
Definition at line 1572 of file Nice.cc.
Referenced by handleUDPMessage().
|
protectedvirtual |
This method gets call **.gracefulLeaveDelay seconds before it is killed.
Reimplemented from BaseOverlay.
Definition at line 236 of file Nice.cc.
|
virtual |
Reimplemented from BaseRpc.
Definition at line 320 of file Nice.cc.
|
virtual |
Processes messages from underlay.
msg | Message from UDP |
Reimplemented from BaseOverlay.
Definition at line 368 of file Nice.cc.
|
virtual |
Initializes derived-class-attributes.
Initializes derived-class-attributes, called by BaseOverlay::initialize(). By default this method is called once. If more stages are needed one can overload numInitStages() and add more stages.
stage | the init stage |
Reimplemented from BaseOverlay.
Definition at line 122 of file Nice.cc.
|
private |
Definition at line 1670 of file Nice.cc.
Referenced by handleNiceLeaderTransfer(), handleNiceQueryResponse(), and maintenance().
|
protectedvirtual |
Join the overlay with a given nodeID in thisNode.key.
Join the overlay with a given nodeID in thisNode.key. This method may be called by an application to join the overlay with a specific nodeID. It is also called if the node's IP address changes.
Reimplemented from BaseOverlay.
|
private |
Definition at line 3135 of file Nice.cc.
Referenced by ClusterSplit(), gracefulLeave(), handleNiceLeaderHeartbeat(), LeaderTransfer(), and maintenance().
|
private |
Definition at line 3171 of file Nice.cc.
|
private |
Definition at line 2352 of file Nice.cc.
Referenced by handleTimerEvent().
|
private |
Merges clusters if needed.
mergeNeeded
Returns true if a merge was made, false otherwise.
Definition at line 2229 of file Nice.cc.
Referenced by maintenance().
|
private |
Definition at line 3467 of file Nice.cc.
Referenced by changeState(), handleTimerEvent(), and maintenance().
|
private |
Definition at line 594 of file Nice.cc.
Referenced by BasicJoinLayer(), handleNiceJoinevalResponse(), handleNiceQueryResponse(), and handleTimerEvent().
|
private |
Definition at line 3190 of file Nice.cc.
Referenced by gracefulLeave(), and maintenance().
|
private |
Definition at line 3365 of file Nice.cc.
Referenced by handleAppMessage(), and handleNiceMulticast().
|
private |
Definition at line 1757 of file Nice.cc.
Referenced by ClusterSplit(), handleNiceClusterMergeRequest(), handleNiceLeaderTransfer(), and handleTimerEvent().
|
private |
Definition at line 1999 of file Nice.cc.
Referenced by handleNiceJoinCluster().
|
private |
sendRemoveTo
Definition at line 2135 of file Nice.cc.
Referenced by handleNiceLeaderHeartbeat().
|
private |
Splits clusters if needed.
splitNeeded
Returns true if a split was made, false otherwise.
Definition at line 2208 of file Nice.cc.
Referenced by maintenance().
|
private |
Definition at line 3420 of file Nice.cc.
Referenced by ClusterSplit(), handleNiceRemove(), and handleTimerEvent().
|
friend |
Definition at line 65 of file Nice.h.
Referenced by handleNiceClusterMergeRequest(), handleNiceJoinCluster(), handleNiceLeaderHeartbeat(), handleNiceLeaderTransfer(), initializeOverlay(), and JoinCluster().
|
private |
Definition at line 186 of file Nice.h.
Referenced by initializeOverlay(), and maintenance().
|
private |
Definition at line 187 of file Nice.h.
Referenced by initializeOverlay(), and maintenance().
|
private |
Definition at line 146 of file Nice.h.
Referenced by initializeOverlay(), and maintenance().
|
private |
Definition at line 158 of file Nice.h.
Referenced by changeState(), cleanPeers(), ClusterMerge(), ClusterMergeRequest(), ClusterSplit(), getHighestLayer(), getHighestLeaderLayer(), gracefulLeave(), handleNiceClusterMergeRequest(), handleNiceJoinCluster(), handleNiceLeaderHeartbeat(), handleNiceLeaderTransfer(), handleNicePingProbe(), handleNiceQuery(), handleNiceQueryResponse(), handleNiceRemove(), initializeOverlay(), JoinCluster(), LeaderTransfer(), maintenance(), mergeNeeded(), Remove(), sendDataToOverlay(), sendHeartbeats(), sendHeartbeatTo(), splitNeeded(), and updateVisualization().
|
private |
Definition at line 147 of file Nice.h.
Referenced by checkLeaderHeartbeatsForCollisions(), handleNiceHeartbeat(), handleNiceLeaderHeartbeat(), handleNiceLeaderTransfer(), and initializeOverlay().
|
private |
Definition at line 149 of file Nice.h.
Referenced by finishOverlay(), handleNiceJoinCluster(), initializeOverlay(), and JoinCluster().
|
private |
Definition at line 150 of file Nice.h.
Referenced by cleanPeers(), and initializeOverlay().
|
private |
Definition at line 152 of file Nice.h.
Referenced by handleNiceQuery(), initializeOverlay(), pollRP(), and Query().
|
private |
Definition at line 151 of file Nice.h.
Referenced by handleNiceRemove(), initializeOverlay(), and Remove().
|
private |
Definition at line 148 of file Nice.h.
Referenced by initializeOverlay(), and updateVisualization().
|
private |
Definition at line 161 of file Nice.h.
Referenced by handleNiceJoinevalResponse(), handleNiceQueryResponse(), and initializeOverlay().
|
private |
Definition at line 139 of file Nice.h.
Referenced by initializeOverlay().
|
private |
Definition at line 116 of file Nice.h.
Referenced by changeState(), checkLeaderHeartbeatsForCollisions(), cleanPeers(), handleTimerEvent(), initializeOverlay(), and JoinCluster().
|
private |
Definition at line 115 of file Nice.h.
Referenced by changeState(), handleTimerEvent(), initializeOverlay(), JoinCluster(), and ~Nice().
|
private |
Definition at line 110 of file Nice.h.
Referenced by changeState(), ClusterSplit(), finishOverlay(), gracefulLeave(), handleNiceLeaderTransfer(), handleNicePollRp(), handleNiceQuery(), handleNodeLeaveNotification(), initializeOverlay(), LeaderTransfer(), maintenance(), mergeNeeded(), and updateVisualization().
|
private |
Definition at line 184 of file Nice.h.
Referenced by BasicJoinLayer(), and JoinCluster().
|
private |
Definition at line 162 of file Nice.h.
Referenced by handleTimerEvent(), initializeOverlay(), and Query().
|
private |
Definition at line 155 of file Nice.h.
Referenced by handleNiceLeaderHeartbeat(), initializeOverlay(), maintenance(), mergeNeeded(), sendHeartbeats(), and splitNeeded().
|
private |
Definition at line 143 of file Nice.h.
Referenced by checkLeaderHeartbeatsForCollisions().
|
private |
Definition at line 120 of file Nice.h.
Referenced by changeState(), handleTimerEvent(), and initializeOverlay().
|
private |
Definition at line 119 of file Nice.h.
Referenced by changeState(), handleTimerEvent(), initializeOverlay(), JoinCluster(), and ~Nice().
|
staticprivate |
Definition at line 63 of file Nice.h.
Referenced by cleanPeers(), ClusterMerge(), ClusterSplit(), getHighestLayer(), handleNiceClusterMergeRequest(), handleNiceLeaderHeartbeat(), handleNiceLeaderTransfer(), handleNiceQuery(), initializeOverlay(), JoinCluster(), LeaderTransfer(), maintenance(), mergeNeeded(), Remove(), and splitNeeded().
|
private |
Definition at line 208 of file Nice.h.
Referenced by finishOverlay(), and handleNiceMulticast().
|
private |
Definition at line 216 of file Nice.h.
Referenced by finishOverlay(), initializeOverlay(), sendHeartbeats(), and sendHeartbeatTo().
|
private |
Definition at line 192 of file Nice.h.
Referenced by finishOverlay(), handleTimerEvent(), initializeOverlay(), and maintenance().
|
private |
Definition at line 206 of file Nice.h.
Referenced by finishOverlay(), handleNiceJoinCluster(), and initializeOverlay().
|
private |
Definition at line 202 of file Nice.h.
Referenced by finishOverlay(), handleNiceMulticast(), and initializeOverlay().
|
private |
Definition at line 196 of file Nice.h.
Referenced by cleanPeers(), finishOverlay(), and initializeOverlay().
|
private |
Definition at line 194 of file Nice.h.
Referenced by finishOverlay(), handleTimerEvent(), and initializeOverlay().
|
private |
Definition at line 212 of file Nice.h.
Referenced by finishOverlay(), handleNiceMulticast(), and initializeOverlay().
|
private |
Definition at line 200 of file Nice.h.
Referenced by finishOverlay(), initializeOverlay(), and maintenance().
|
private |
Definition at line 198 of file Nice.h.
Referenced by cleanPeers(), finishOverlay(), and initializeOverlay().
|
private |
Definition at line 180 of file Nice.h.
Referenced by cleanPeers(), ClusterMerge(), ClusterSplit(), getMaxDistance(), getMeanDistance(), handleNiceClusterMergeRequest(), handleNiceHeartbeat(), handleNiceJoinCluster(), handleNiceLeaderHeartbeat(), handleNiceLeaderTransfer(), handleNicePingProbeResponse(), handleUDPMessage(), initializeOverlay(), JoinCluster(), maintenance(), sendHeartbeats(), sendHeartbeatTo(), and ~Nice().
|
private |
Definition at line 130 of file Nice.h.
Referenced by cleanPeers(), and initializeOverlay().
|
private |
Definition at line 106 of file Nice.h.
Referenced by ClusterSplit(), handleNiceClusterMergeRequest(), handleNiceJoinCluster(), handleNiceLeaderTransfer(), handleNiceQuery(), handleNiceRemove(), and initializeOverlay().
|
private |
Definition at line 165 of file Nice.h.
Referenced by handleNicePollRpResponse(), handleTimerEvent(), initializeOverlay(), and pollRP().
|
private |
Definition at line 174 of file Nice.h.
Referenced by handleNiceJoinevalResponse(), and handleNiceQueryResponse().
|
private |
Definition at line 168 of file Nice.h.
Referenced by handleNiceJoinevalResponse(), handleNiceQueryResponse(), initializeOverlay(), and Query().
|
private |
Definition at line 124 of file Nice.h.
Referenced by initializeOverlay(), and Query().
|
private |
Definition at line 123 of file Nice.h.
Referenced by handleNiceQueryResponse(), initializeOverlay(), Query(), and ~Nice().
|
private |
Definition at line 108 of file Nice.h.
Referenced by BasicJoinLayer(), changeState(), finishOverlay(), handleNiceLeaderTransfer(), handleNicePollRpResponse(), handleNiceQuery(), handleTimerEvent(), initializeOverlay(), JoinCluster(), maintenance(), and pollRP().
|
private |
Definition at line 127 of file Nice.h.
Referenced by handleNicePollRpResponse(), initializeOverlay(), pollRP(), and ~Nice().
|
private |
Definition at line 128 of file Nice.h.
Referenced by initializeOverlay(), and pollRP().
|
private |
Definition at line 189 of file Nice.h.
Referenced by initializeOverlay(), and maintenance().
|
private |
Definition at line 188 of file Nice.h.
Referenced by initializeOverlay(), maintenance(), and sendHeartbeats().
|
private |
Definition at line 141 of file Nice.h.
Referenced by initializeOverlay().
|
private |
Definition at line 177 of file Nice.h.
Referenced by BasicJoinLayer(), and handleNiceQueryResponse().
|
private |
Definition at line 183 of file Nice.h.
Referenced by cleanPeers(), handleNicePeerTemporary(), handleNicePeerTemporaryRelease(), initializeOverlay(), and sendDataToOverlay().
|
private |
Definition at line 171 of file Nice.h.
Referenced by handleNiceJoinevalResponse(), handleTimerEvent(), and Query().
|
private |
Definition at line 210 of file Nice.h.
Referenced by finishOverlay(), handleNiceMulticast(), and initializeOverlay().
|
private |
Definition at line 218 of file Nice.h.
Referenced by finishOverlay(), initializeOverlay(), sendHeartbeats(), and sendHeartbeatTo().
|
private |
Definition at line 214 of file Nice.h.
Referenced by finishOverlay(), handleNiceMulticast(), and initializeOverlay().
|
private |
Definition at line 204 of file Nice.h.
Referenced by finishOverlay(), initializeOverlay(), and maintenance().
|
private |
Definition at line 133 of file Nice.h.
Referenced by changeState(), handleTimerEvent(), initializeOverlay(), and ~Nice().