A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
data-rate.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 //
3 // Copyright (c) 2006 Georgia Tech Research Corporation
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License version 2 as
7 // published by the Free Software Foundation;
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 //
18 // Author: Rajib Bhattacharjea<raj.b@gatech.edu>
19 //
20 
21 #ifndef DATA_RATE_H
22 #define DATA_RATE_H
23 
24 #include <string>
25 #include <iostream>
26 #include <stdint.h>
27 #include "ns3/nstime.h"
28 #include "ns3/attribute.h"
29 #include "ns3/attribute-helper.h"
30 
31 namespace ns3 {
32 
71 class DataRate
72 {
73 public:
74  DataRate ();
83  DataRate (uint64_t bps);
102  DataRate (std::string rate);
103 
109  bool operator < (const DataRate& rhs) const;
110 
116  bool operator <= (const DataRate& rhs) const;
117 
123  bool operator > (const DataRate& rhs) const;
124 
130  bool operator >= (const DataRate& rhs) const;
131 
137  bool operator == (const DataRate& rhs) const;
138 
144  bool operator != (const DataRate& rhs) const;
145 
153  double CalculateTxTime (uint32_t bytes) const;
154 
159  uint64_t GetBitRate () const;
160 
161 private:
162  uint64_t m_bps;
163  static uint64_t Parse (const std::string);
164 };
165 
166 std::ostream &operator << (std::ostream &os, const DataRate &rate);
167 std::istream &operator >> (std::istream &is, DataRate &rate);
168 
176 
182 double operator* (const DataRate& lhs, const Time& rhs);
183 double operator* (const Time& lhs, const DataRate& rhs);
184 
185 } // namespace ns3
186 
187 #endif /* DATA_RATE_H */
ATTRIBUTE_HELPER_HEADER(ObjectFactory)
std::istream & operator>>(std::istream &is, Angles &a)
initialize a struct Angles from input
Definition: angles.cc:49
keep track of time values and allow control of global simulation resolution
Definition: nstime.h:81
static uint64_t Parse(const std::string)
bool operator<(const DataRate &rhs) const
Definition: data-rate.cc:199
TracedValue< T > operator*(const TracedValue< T > &lhs, const TracedValue< U > &rhs)
Definition: traced-value.h:365
bool operator>(const DataRate &rhs) const
Definition: data-rate.cc:209
uint64_t m_bps
Definition: data-rate.h:162
Class for representing data rates.
Definition: data-rate.h:71
double CalculateTxTime(uint32_t bytes) const
Calculate transmission time.
Definition: data-rate.cc:229
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
Definition: angles.cc:43
uint64_t GetBitRate() const
Get the underlying bitrate.
Definition: data-rate.cc:235
DataRate()
Macro to make help make data-rate an ns-3 attribute.
Definition: data-rate.cc:187
bool operator<=(const DataRate &rhs) const
Definition: data-rate.cc:204
bool operator>=(const DataRate &rhs) const
Definition: data-rate.cc:214
bool operator!=(const DataRate &rhs) const
Definition: data-rate.cc:224
bool operator==(const DataRate &rhs) const
Definition: data-rate.cc:219