#include "sdf3ctg.h"
#include "base/base.h"
Classes | |
class | Message |
struct | _Edge |
struct | _Node |
struct | _ArchGraph |
struct | _Settings |
Typedefs | |
typedef unsigned int | TTime |
typedef list< Message * > | Messages |
typedef Messages::iterator | MessagesIter |
typedef Messages::const_iterator | MessagesCIter |
typedef struct _Edge | Edge |
typedef vector< Edge * > | Edges |
typedef Edges::iterator | EdgesIter |
typedef Edges::const_iterator | EdgesCIter |
typedef struct _Node | Node |
typedef vector< Node * > | Nodes |
typedef Nodes::iterator | NodesIter |
typedef Nodes::const_iterator | NodesCIter |
typedef struct _ArchGraph | ArchGraph |
typedef struct _Settings | Settings |
Functions | |
void | helpMessage (ostream &out) |
void | parseCommandLine (int argc, char **argv) |
CNode * | loadArchitectureGraphFromFile (CString &file, CString &module) |
void | parseSettingsFile (CString module, CString type) |
void | setDefaults () |
bool | initSettings (int argc, char **argv) |
ArchGraph * | constructArchitectureGraph (CNode *archNode) |
uint ** | computeReachabilityMatrix (ArchGraph *g) |
void | printPreamble (ostream &out) |
void | printPostamble (ostream &out) |
ostream & | printMessage (ArchGraph *archGraph, Message *m, ostream &out) |
void | generateStream (Messages &messages, const CId streamId, const CId srcNodeId, const CId dstNodeId) |
CId | selectDstNode (const CId srcNodeId, ArchGraph *archGraph, uint **distanceMatrix) |
CId | selectSrcNode (const CId dstNodeId, ArchGraph *archGraph, uint **distanceMatrix) |
void | generateMessagesHotspots (ArchGraph *archGraph, uint **distanceMatrix, Messages &messages) |
void | generateMessagesUniform (ArchGraph *archGraph, uint **distanceMatrix, Messages &messages) |
void | generateMessages (ostream &out) |
int | main (int argc, char **argv) |
Variables | |
Settings | settings |
MTRand | mtRand |
Typedef Documentation
typedef struct _ArchGraph ArchGraph |
typedef Edges::const_iterator EdgesCIter |
typedef Edges::iterator EdgesIter |
typedef Messages::const_iterator MessagesCIter |
typedef Messages::iterator MessagesIter |
typedef Nodes::const_iterator NodesCIter |
typedef Nodes::iterator NodesIter |
typedef unsigned int TTime |
Function Documentation
computeReachabilityMatrix () The function computes the minimal length of the route (number of edges) between every pair of source and destination nodes in the architecture graph. If a node n is not reachable from a node m, the distance from m to n is INT_MAX - 1
References _Edge::dstNode, and _ArchGraph::nodes.
Referenced by generateMessages().
constructArchitectureGraph () The function constructs an architecture graph from the XML description.
References CGetAttribute(), CGetChildNode(), CNextNode(), _Edge::dstNode, _ArchGraph::edges, g, _Node::inEdges, _Edge::name, Node::name, _ArchGraph::nodes, _Node::outEdges, and _Edge::srcNode.
Referenced by generateMessages().
void generateMessages | ( | ostream & | out | ) |
generateMessages () Generate a set of messages organised in streams for the requested traffic pattern. Messages are outputted to the supplied output stream.
References archGraph, computeReachabilityMatrix(), constructArchitectureGraph(), generateMessagesHotspots(), generateMessagesUniform(), printMessage(), printPostamble(), printPreamble(), Settings::type, and Settings::xmlArchGraph.
Referenced by main().
void generateMessagesHotspots | ( | ArchGraph * | archGraph, | |
uint ** | distanceMatrix, | |||
Messages & | messages | |||
) |
generateMessagesHotspots () Generate a set of messages with a hotspot traffic distribution.
References generateStream(), _ArchGraph::nodes, MTRand::rand(), MTRand::randInt(), selectDstNode(), and selectSrcNode().
Referenced by generateMessages().
generateMessagesUniform () Generate a set of messages with a uniform traffic distribution.
References generateStream(), _ArchGraph::nodes, MTRand::randInt(), and selectDstNode().
Referenced by generateMessages().
void generateStream | ( | Messages & | messages, | |
const CId | streamId, | |||
const CId | srcNodeId, | |||
const CId | dstNodeId | |||
) |
generateStream () Generate a stream of messages between the source and destination node.
References MTRand::randNorm(), Message::setDstNodeId(), Message::setDuration(), Message::setSeqNr(), Message::setSize(), Message::setSrcNodeId(), Message::setStartTime(), and Message::setStreamId().
Referenced by generateMessagesHotspots(), and generateMessagesUniform().
void helpMessage | ( | ostream & | out | ) |
helpMessage () Function prints help message for the tool.
References DOTTED_VERSION, and TOOL.
bool initSettings | ( | int | argc, | |
char ** | argv | |||
) |
initSettings () The function initializes the program settings.
References MODULE, parseCommandLine(), parseSettingsFile(), setDefaults(), and SETTINGS_TYPE.
loadArchitectureGraphFromFile () The function returns a pointer to an XML data structures contained in the supplied file that describes the platform.
References CGetAttribute(), CGetChildNode(), CGetRootNode(), and CParseFile().
int main | ( | int | argc, | |
char ** | argv | |||
) |
main () It does none of the hard work, but it is very needed...
References generateMessages(), initSettings(), MaxPlusAnalysis::out, and Settings::outputFile.
void parseCommandLine | ( | int | argc, | |
char ** | argv | |||
) |
parseCommandLine () The function parses the command line arguments and add info to the supplied settings structure.
References helpMessage(), Settings::outputFile, and Settings::settingsFile.
parseSettingsFile () The function parses all settings from the settings file.
References CGetAttribute(), CGetChildNode(), CGetRootNode(), CHasAttribute(), CHasChildNode(), CNextNode(), CParseFile(), loadArchitectureGraphFromFile(), Settings::settingsFile, Settings::type, and Settings::xmlArchGraph.
printMessage () The function outputs a message to the supplied output stream.
References Message::getDstNodeId(), Message::getDuration(), Message::getId(), Message::getSeqNr(), Message::getSize(), Message::getSrcNodeId(), Message::getStartTime(), Message::getStreamId(), and _ArchGraph::nodes.
Referenced by generateMessages().
void printPostamble | ( | ostream & | out | ) |
printPostamble () The function outputs a postamble to the supplied output stream closing the XML tags.
Referenced by generateMessages().
void printPreamble | ( | ostream & | out | ) |
printPreamble () The function outputs a preamble to the supplied output stream explaining the file format.
References Settings::outputFile, Settings::settingsFile, and Settings::type.
Referenced by generateMessages().
selectDstNode () The function returns the id of a randomly choosen node which is at a randomly choosen distance from the given source node in the architecture graph.
References _ArchGraph::nodes, MTRand::randInt(), and MTRand::randNorm().
Referenced by generateMessagesHotspots(), and generateMessagesUniform().
selectSrcNode () The function returns the id of a randomly choosen node which is at a randomly choosen distance from the given destination node in the architecture graph.
References _ArchGraph::nodes, MTRand::randInt(), and MTRand::randNorm().
Referenced by generateMessagesHotspots().
void setDefaults | ( | ) |
setDefaults () Set all settings at their default value.
References Settings::outputFile, Settings::settingsFile, and Settings::type.