Fountain master and slave nodes


Files

file  Hostname.h
 Definition of the Hostname class.
file  NodeID.h
 Definition of the NodeID class.
file  FountainMasterNode.h
 Definition of the FountainMasterNode class.
file  FountainNode.h
 Definition of the FountainNode class.
file  DarwinMonitor.h
 Definition of the DarwinMonitor class.
file  LinuxMonitor.h
 Definition of the LinuxMonitor class.
file  NodeMonitor.h
 Definition of the NodeMonitorBase class.
file  nodeCommon.h
 Functions definitions used by both node.cpp and masterNode.cpp.
file  NodeMessage.h
 Definitions of classes NodeMessage, NodeRequest, and NodeResponse.
file  TreeNode.h
 Definition of TreeNode class.
file  TreeTopology.h
 Definition of TreeTopology class.

Classes

class  FountainMasterNode
 The FountainMasterNode class extends the FountainNode class by adding or overloading methods to recover from tree failures and handle requests from the Fountain server. More...
class  FountainNode
 A class for maintaining all aspects of a Fountain node. More...
class  FountainNode::forwardMessageToChildren
 Functor class to forward a ConstParseMsgPtr message to all child nodes. More...
class  FountainNodeCreator< T >
 Wrapper policy class around Loki::CreateUsingNew to instantiate singleton instances of FountainNode classes. More...
class  DarwinMonitor
 Mac OS X implementation of the NodeMonitor class. More...
class  LinuxMonitor
 Linux implementation of the NodeMonitor class. More...
class  NodeMonitorBase
 Abstract base class for all node monitoring objects to derive from. More...
class  NodeMessage
 Abstract base class for messages sent to and from Fountain nodes. More...
class  NodeRequest
 Used for request messages sent from a Fountain node. More...
class  NodeResponse
 Used for response messages sent from a Fountain node. More...
class  TreeNode
 represents a Fountain node in the tree topology More...
class  TreeTopology
 A class to maintain the n-way tree toplogy of slave Fountain nodes. More...

Typedefs

typedef Loki::SingletonHolder<
FountainMasterNode, FountainNodeCreator
SingleFountainMasterNode
 Shorthand for getting the singleton instance of the FountainMasterNode class.
typedef TreeTopology::ChildNodeContainer::iterator FountainNode::childIterator
 Makes it easy to use an iterator for our children vector.
typedef TreeTopology::ChildNodeContainer::const_iterator FountainNode::constChildIterator
 Makes it easy to use a const_iterator for our children vector.
typedef Loki::SingletonHolder<
FountainNode, FountainNodeCreator
SingleFountainNode
 Shorthand for getting the singleton instance of the FountainNode class.
typedef Loki::SmartPtr< NodeMonitorBaseNodeMonitorBase::NodeMonitorPtr
 Shorthand for a NodeMonitorBase pointer wrapped inside a SmartPtr object.
typedef std::map< NodeID,
FountainWireProtPtr
TreeTopology::ChildNodeContainer
 Shorthand for accessing child Fountain nodes.

Variables

const time_t CHILD_RESPONSE_TIMEOUT = 5
 Number of seconds to wait for a child response

Ideally this number would change as the tree topology grows larger since the master Fountain node has to wait until all of its children, grandchildren, great grandchildren etc, have processed and responded to the request message until it receives a response. For now we'll leave it as a const variable with static linkage in this file.

bool DEFAULT_RESTRICT_ACTORS = true
 true if only Fountain nodes with the same "actor" attribute in their request can join us, otherwise any actor attribute is accepted
bool DEFAULT_RESTRICT_HOSTNAMES = true
 true if hostnames of slave Fountain nodes are determined using the getpeername system call, otherwise the hostnames of slave Fountain nodes are supplied in the join request
const time_t PARENT_PULSE_TIME_LIMIT = 60
 Time limit in seconds after not receiving a pulsg request from our parent before we report them as lost.
const time_t CHILD_PULSE_INTERVAL = 20
 Time limit in seconds between sending pulse requests to our child nodes.

Detailed Description

These files, classes, and typedefs are used to create the Fountain master and slave nodes.
Generated on Wed Mar 8 14:43:33 2006 for Fountain by  doxygen 1.4.6