00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "ns3/object.h"
00022 #include "ns3/log.h"
00023
00024 #include "data-collector.h"
00025 #include "data-calculator.h"
00026
00027 using namespace ns3;
00028
00029 NS_LOG_COMPONENT_DEFINE("DataCollector");
00030
00031
00032
00033 DataCollector::DataCollector() {
00034 NS_LOG_FUNCTION_NOARGS();
00035
00036 }
00037
00038 DataCollector::~DataCollector() {
00039 NS_LOG_FUNCTION_NOARGS();
00040
00041 }
00042
00043 void DataCollector::DoDispose() {
00044 NS_LOG_FUNCTION_NOARGS();
00045
00046 m_calcList.clear();
00047 m_metadata.clear();
00048
00049 Object::DoDispose();
00050
00051 }
00052
00053 void
00054 DataCollector::DescribeRun(std::string experiment,
00055 std::string strategy,
00056 std::string input,
00057 std::string runID,
00058 std::string description)
00059 {
00060
00061 m_experimentLabel = experiment;
00062 m_strategyLabel = strategy;
00063 m_inputLabel = input;
00064 m_runLabel = runID;
00065 m_description = description;
00066
00067
00068 }
00069
00070 void
00071 DataCollector::AddDataCalculator(Ptr<DataCalculator> datac)
00072 {
00073
00074 m_calcList.push_back(datac);
00075
00076
00077 }
00078
00079 DataCalculatorList::iterator
00080 DataCollector::DataCalculatorBegin()
00081 {
00082 return m_calcList.begin();
00083
00084 }
00085 DataCalculatorList::iterator
00086 DataCollector::DataCalculatorEnd()
00087 {
00088 return m_calcList.end();
00089
00090 }
00091
00092 void
00093 DataCollector::AddMetadata(std::string key, std::string value)
00094 {
00095 std::pair<std::string, std::string> blob(key, value);
00096 m_metadata.push_back(blob);
00097
00098 }
00099 void
00100 DataCollector::AddMetadata(std::string key, uint32_t value)
00101 {
00102 std::stringstream st;
00103 st << value;
00104
00105 std::pair<std::string, std::string> blob(key, st.str());
00106 m_metadata.push_back(blob);
00107
00108 }
00109 void
00110 DataCollector::AddMetadata(std::string key, double value)
00111 {
00112 std::stringstream st;
00113 st << value;
00114
00115 std::pair<std::string, std::string> blob(key, st.str());
00116 m_metadata.push_back(blob);
00117
00118 }
00119
00120 MetadataList::iterator
00121 DataCollector::MetadataBegin()
00122 {
00123 return m_metadata.begin();
00124
00125 }
00126 MetadataList::iterator
00127 DataCollector::MetadataEnd()
00128 {
00129 return m_metadata.end();
00130
00131 }