A Discrete-Event Network Simulator
API
three-gpp-http-variables.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013 Magister Solutions
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: Budiarto Herman <budiarto.herman@magister.fi>
19  *
20  */
21 
22 #ifndef THREE_GPP_HTTP_VARIABLES_H
23 #define THREE_GPP_HTTP_VARIABLES_H
24 
25 #include <ns3/object.h>
26 #include <ns3/nstime.h>
27 #include <ns3/random-variable-stream.h>
28 
29 
30 namespace ns3 {
31 
32 
71 {
72 public:
75 
80  static TypeId GetTypeId ();
81 
92  uint32_t GetMtuSize ();
93 
104  uint32_t GetRequestSize ();
105 
117 
129  uint32_t GetMainObjectSize ();
130 
142 
155  uint32_t GetEmbeddedObjectSize ();
156 
169  uint32_t GetNumOfEmbeddedObjects ();
170 
182  Time GetReadingTime ();
183 
196  Time GetParsingTime ();
197 
211  int64_t AssignStreams (int64_t stream);
212 
213  // SETTER METHODS
214 
218  void SetRequestSize (uint32_t constant);
222  void SetMainObjectGenerationDelay (Time constant);
227  void SetMainObjectSizeMean (uint32_t mean);
231  void SetMainObjectSizeStdDev (uint32_t stdDev);
235  void SetEmbeddedObjectGenerationDelay (Time constant);
240  void SetEmbeddedObjectSizeMean (uint32_t mean);
244  void SetEmbeddedObjectSizeStdDev (uint32_t stdDev);
249  void SetNumOfEmbeddedObjectsMax (uint32_t max);
254  void SetNumOfEmbeddedObjectsShape (double shape);
259  void SetNumOfEmbeddedObjectsScale (uint32_t scale);
263  void SetReadingTimeMean (Time mean);
267  void SetParsingTimeMean (Time mean);
268 
269 private:
274  void UpdateMainObjectMuAndSigma (void);
279  void UpdateEmbeddedObjectMuAndSigma (void);
280 
281  void DoInitialize (void); // overridden from base class
282 
309  uint32_t m_lowMtu;
311  uint32_t m_highMtu;
345 
346 }; // end of `class ThreeGppHttpVariables`
347 
348 
349 } // end of `namespace ns3`
350 
351 #endif /* THREE_GPP_HTTP_VARIABLES_H */
352 
#define max(a, b)
Definition: 80211b.c:43
A base class which provides memory management and object aggregation.
Definition: object.h:88
Container of various random variables to assist in generating web browsing traffic pattern.
void UpdateEmbeddedObjectMuAndSigma(void)
Upon and after object initialization, update random variable Mu and Sigma based on changes to attribu...
uint32_t m_mainObjectSizeMax
Upper bound parameter for m_mainObjectSizeRng;.
Ptr< ExponentialRandomVariable > m_parsingTimeRng
Random variable for determining the length of parsing time (in seconds).
uint32_t m_mainObjectSizeMin
Lower bound parameter for m_mainObjectSizeRng;.
Ptr< LogNormalRandomVariable > m_embeddedObjectSizeRng
Random variable for determining embedded object size (in bytes).
uint32_t m_numOfEmbeddedObjectsScale
Scale parameter for m_numOfEmbeddedObjectsRng.
void SetMainObjectGenerationDelay(Time constant)
static TypeId GetTypeId()
Returns the object TypeId.
Ptr< ConstantRandomVariable > m_requestSizeRng
Random variable for determining request size (in bytes).
void SetEmbeddedObjectGenerationDelay(Time constant)
uint32_t GetMtuSize()
Draws a random value of maximum transmission unit (MTU) size in bytes.
uint32_t m_mainObjectSizeMean
Mean parameter for m_mainObjectSizeRng;.
void UpdateMainObjectMuAndSigma(void)
Upon and after object initialization, update random variable Mu and Sigma based on changes to attribu...
Time GetEmbeddedObjectGenerationDelay()
Returns the constant length of time needed by an HTTP server to generate an embedded object.
void SetMainObjectSizeStdDev(uint32_t stdDev)
Ptr< LogNormalRandomVariable > m_mainObjectSizeRng
Random variable for determining main object size (in bytes).
uint32_t m_embeddedObjectSizeMax
Upper bound parameter for m_embeddedObjectSizeRng.
void SetNumOfEmbeddedObjectsScale(uint32_t scale)
Ptr< ExponentialRandomVariable > m_readingTimeRng
Random variable for determining the length of reading time (in seconds).
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
Ptr< ConstantRandomVariable > m_mainObjectGenerationDelayRng
Random variable for determining the delay needed to generate a main object (in seconds).
void DoInitialize(void)
Initialize() implementation.
Time GetReadingTime()
Draws a random length of time which is spent by a hypothetical human user (HTTP client) to read a web...
Time GetMainObjectGenerationDelay()
Returns the constant length of time needed by an HTTP server to generate a main object.
uint32_t GetRequestSize()
Returns the constant HTTP request size in bytes.
uint32_t GetMainObjectSize()
Draws a random main object size (in bytes) to be sent by an HTTP server.
uint32_t m_mainObjectSizeStdDev
Standard deviation parameter for m_mainObjectSizeRng;.
Ptr< ParetoRandomVariable > m_numOfEmbeddedObjectsRng
Random variable for determining the number of embedded objects.
void SetEmbeddedObjectSizeMean(uint32_t mean)
uint32_t GetEmbeddedObjectSize()
Draws a random embedded object size (in bytes) to be sent by an HTTP server.
void SetEmbeddedObjectSizeStdDev(uint32_t stdDev)
void SetNumOfEmbeddedObjectsMax(uint32_t max)
double m_highMtuProbability
High MTU size probability.
uint32_t m_embeddedObjectSizeMean
Mean parameter for m_embeddedObjectSizeRng.
uint32_t m_embeddedObjectSizeStdDev
Standard deviation parameter for m_embeddedObjectSizeRng.
void SetNumOfEmbeddedObjectsShape(double shape)
uint32_t m_highMtu
Higher MTU size.
uint32_t GetNumOfEmbeddedObjects()
Draws a random integer indicating the number of embedded objects in a main object.
uint32_t m_embeddedObjectSizeMin
Lower bound parameter for m_embeddedObjectSizeRng.
Ptr< ConstantRandomVariable > m_embeddedObjectGenerationDelayRng
Random variable for determining the delay needed to generate an embedded object (in seconds).
void SetRequestSize(uint32_t constant)
ThreeGppHttpVariables()
Create a new instance with default configuration of random distributions.
Ptr< UniformRandomVariable > m_mtuSizeRng
Random variable for determining MTU size (in bytes).
Time GetParsingTime()
Draws a random length of time which simulate the small delay caused by HTTP client looking for any em...
uint32_t m_lowMtu
Lower MTU size.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.