22 #include "ns3/nstime.h"
23 #include "ns3/fatal-error.h"
27 DoParse (
const std::string s, uint64_t *v)
29 std::string::size_type n = s.find_first_not_of (
"0123456789.");
30 if (n != std::string::npos)
32 std::istringstream iss;
33 iss.str (s.substr (0, n));
36 std::string trailer = s.substr (n, std::string::npos);
42 else if (trailer ==
"b/s")
47 else if (trailer ==
"Bps")
50 *v = (uint64_t)(r * 8);
52 else if (trailer ==
"B/s")
55 *v = (uint64_t)(r * 8);
57 else if (trailer ==
"kbps")
60 *v = (uint64_t)(r * 1000);
62 else if (trailer ==
"kb/s")
65 *v = (uint64_t)(r * 1000);
67 else if (trailer ==
"Kbps")
70 *v = (uint64_t)(r * 1000);
72 else if (trailer ==
"Kb/s")
75 *v = (uint64_t)(r * 1000);
77 else if (trailer ==
"kBps")
80 *v = (uint64_t)(r * 8000);
82 else if (trailer ==
"kB/s")
85 *v = (uint64_t)(r * 8000);
87 else if (trailer ==
"KBps")
90 *v = (uint64_t)(r * 8000);
92 else if (trailer ==
"KB/s")
95 *v = (uint64_t)(r * 8000);
97 else if (trailer ==
"Kib/s")
100 *v = (uint64_t)(r * 1024);
102 else if (trailer ==
"KiB/s")
105 *v = (uint64_t)(r * 8192);
107 else if (trailer ==
"Mbps")
110 *v = (uint64_t)(r * 1000000);
112 else if (trailer ==
"Mb/s")
115 *v = (uint64_t)(r * 1000000);
117 else if (trailer ==
"MBps")
120 *v = (uint64_t)(r * 8000000);
122 else if (trailer ==
"MB/s")
125 *v = (uint64_t)(r * 8000000);
127 else if (trailer ==
"Mib/s")
130 *v = (uint64_t)(r * 1048576);
132 else if (trailer ==
"MiB/s")
135 *v = (uint64_t)(r * 1048576 * 8);
137 else if (trailer ==
"Gbps")
140 *v = (uint64_t)(r * 1000000000);
142 else if (trailer ==
"Gb/s")
145 *v = (uint64_t)(r * 1000000000);
147 else if (trailer ==
"GBps")
150 *v = (uint64_t)(r * 8*1000000000);
152 else if (trailer ==
"GB/s")
155 *v = (uint64_t)(r * 8*1000000000);
157 else if (trailer ==
"Gib/s")
160 *v = (uint64_t)(r * 1048576 * 1024);
162 else if (trailer ==
"GiB/s")
165 *v = (uint64_t)(r * 1048576 * 1024 * 8);
173 std::istringstream iss;
226 return static_cast<double>(bytes)*8/
m_bps;
256 is.setstate (std::ios_base::failbit);