View | Details | Raw Unified | Return to bug 433
Collapse All | Expand All

(-)a/src/common/data-rate.cc (-14 / +64 lines)
 Lines 36-98   DoParse (const std::string s, uint64_t * Link Here 
36
    std::string trailer = s.substr(n, std::string::npos);
36
    std::string trailer = s.substr(n, std::string::npos);
37
    if (trailer == "bps")
37
    if (trailer == "bps")
38
      {
38
      {
39
        // Bit/s
39
        // bit/s
40
        *v = (uint64_t)r;
40
        *v = (uint64_t)r;
41
      }
41
      }
42
    else if (trailer == "b/s")
42
    else if (trailer == "b/s")
43
      {
43
      {
44
        // Bit/s
44
        // bit/s
45
        *v = (uint64_t)r;
45
        *v = (uint64_t)r;
46
      }
46
      }
47
    else if (trailer == "Bps")
47
    else if (trailer == "Bps")
48
      {
48
      {
49
        // Byte/s
49
        // byte/s
50
        *v = (uint64_t)(r * 8);
50
        *v = (uint64_t)(r * 8);
51
      }
51
      }
52
    else if (trailer == "B/s") 
52
    else if (trailer == "B/s") 
53
      {
53
      {
54
        // Byte/s
54
        // byte/s
55
        *v = (uint64_t)(r * 8);
55
        *v = (uint64_t)(r * 8);
56
      }
56
      }
57
    else if (trailer == "kbps")
57
    else if (trailer == "kbps")
58
      {
58
      {
59
        // KiloBit/s
59
        // kilobits/s
60
        *v = (uint64_t)(r * 1000);
60
        *v = (uint64_t)(r * 1000);
61
      }
61
      }
62
    else if (trailer == "kb/s")
62
    else if (trailer == "kb/s")
63
      {
63
      {
64
        // KiloBit/s
64
        // kilobits/s
65
        *v = (uint64_t)(r * 1000);
66
      }
67
    else if (trailer == "Kbps")
68
      {
69
        // kilobits/s
70
        *v = (uint64_t)(r * 1000);
71
      }
72
    else if (trailer == "Kb/s")
73
      {
74
        // kilobits/s
65
        *v = (uint64_t)(r * 1000);
75
        *v = (uint64_t)(r * 1000);
66
      }
76
      }
67
    else if (trailer == "kBps")
77
    else if (trailer == "kBps")
68
      {
78
      {
69
        // KiloBit/s
79
        // kiloByte/s
70
        *v = (uint64_t)(r * 1000);
80
        *v = (uint64_t)(r * 8000);
71
      }
81
      }
72
    else if (trailer == "kB/s")
82
    else if (trailer == "kB/s")
73
      {
83
      {
74
        // KiloBit/s
84
        // KiloByte/s
75
        *v = (uint64_t)(r * 1000);
85
        *v = (uint64_t)(r * 8000);
86
      }
87
    else if (trailer == "KBps")
88
      {
89
        // kiloByte/s
90
        *v = (uint64_t)(r * 8000);
91
      }
92
    else if (trailer == "KB/s")
93
      {
94
        // KiloByte/s
95
        *v = (uint64_t)(r * 8000);
96
      }
97
    else if (trailer == "Kib/s")
98
      {
99
        // kibibit/s
100
        *v = (uint64_t)(r * 1024);
101
      }
102
    else if (trailer == "KiB/s")
103
      {
104
        // kibibyte/s
105
        *v = (uint64_t)(r * 8192);
76
      }
106
      }
77
    else if (trailer == "Mbps")
107
    else if (trailer == "Mbps")
78
      {
108
      {
79
        // MegaBit/s
109
        // MegaBits/s
80
        *v = (uint64_t)(r * 1000000);
110
        *v = (uint64_t)(r * 1000000);
81
      }
111
      }
82
    else if (trailer == "Mb/s")
112
    else if (trailer == "Mb/s")
83
      {
113
      {
84
        // MegaBit/s
114
        // MegaBits/s
85
        *v = (uint64_t)(r * 1000000);
115
        *v = (uint64_t)(r * 1000000);
86
      }
116
      }
87
    else if (trailer == "MBps")
117
    else if (trailer == "MBps")
88
      {
118
      {
89
        // MegaByte/s
119
        // MegaBytes/s
90
        *v = (uint64_t)(r * 8000000);
120
        *v = (uint64_t)(r * 8000000);
91
      }
121
      }
92
    else if (trailer == "MB/s")
122
    else if (trailer == "MB/s")
93
      {
123
      {
94
        // MegaByte/s
124
        // MegaBytes/s
95
        *v = (uint64_t)(r * 8000000);
125
        *v = (uint64_t)(r * 8000000);
126
      }
127
    else if (trailer == "Mib/s")
128
      {
129
        // MebiBits/s
130
        *v = (uint64_t)(r * 1048576);
131
      }
132
    else if (trailer == "MiB/s")
133
      {
134
        // MebiByte/s
135
        *v = (uint64_t)(r * 1048576 * 8);
96
      }
136
      }
97
    else if (trailer == "Gbps")
137
    else if (trailer == "Gbps")
98
      {
138
      {
 Lines 113-118   DoParse (const std::string s, uint64_t * Link Here 
113
      {
153
      {
114
        // GigaByte/s
154
        // GigaByte/s
115
        *v = (uint64_t)(r * 8*1000000000);
155
        *v = (uint64_t)(r * 8*1000000000);
156
      }
157
    else if (trailer == "Gib/s")
158
      {
159
        // GibiBits/s
160
        *v = (uint64_t)(r * 1048576 * 1024);
161
      }
162
    else if (trailer == "GiB/s")
163
      {
164
        // GibiByte/s
165
        *v = (uint64_t)(r * 1048576 * 1024 * 8);
116
      }
166
      }
117
    else
167
    else
118
      {
168
      {
(-)a/src/common/data-rate.h (+19 lines)
 Lines 48-53   namespace ns3 { Link Here 
48
 * \endcode
48
 * \endcode
49
 * This class also supports the regular comparison operators <, >, <=, >=, ==,
49
 * This class also supports the regular comparison operators <, >, <=, >=, ==,
50
 * and !=
50
 * and !=
51
 *
52
 * Conventions used:
53
 * "b" stands for bits, "B" for bytes (8 bits) \n
54
 * "k" stands for 1000, "K" also stands for 1000, "Ki" stands for 1024 \n
55
 * "M" stand for 1000000, "Mib" stands for 1024 kibibits, or 1048576 bits \n
56
 * "G" stand for 10^9, "Gib" stands for 1024 mebibits \n
57
 * whitespace is allowed but not required between the numeric value and units
58
 *
59
 * Supported unit strings:
60
 * bps, b/s, Bps, B/s \n
61
 * kbps, kb/s, Kbps, Kb/s, kBps, kB/s, KBps, KB/s, Kib/s, KiB/s \n
62
 * Mbps, Mb/s, MBps, MB/s, Mib/s, MiB/s \n
63
 * Gbps, Gb/s, GBps, GB/s, Gib/s, GiB/s \n
64
 * 
65
 * Examples:
66
 * "56kbps" = 56,000 bits/s \n
67
 * "128 kb/s" = 128,000 bits/s \n
68
 * "8Kib/s" = 1 KiB/s = 8192 bits/s \n
69
 * "1kB/s" = 8000 bits/s 
51
 */
70
 */
52
class DataRate
71
class DataRate
53
{
72
{

Return to bug 433