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< NodeMonitorBase > | NodeMonitorBase::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. | |
1.4.6