9#ifndef TGAX_VIRTUAL_DESKTOP_H
10#define TGAX_VIRTUAL_DESKTOP_H
14#include "ns3/address.h"
15#include "ns3/event-id.h"
130 std::vector<Ptr<NormalRandomVariable>>
The Bernoulli distribution Random Number Generator (RNG).
An identifier for simulation events.
The exponential distribution Random Number Generator (RNG).
The normal (Gaussian) distribution Random Number Generator (RNG) that allows stream numbers to be set...
Smart pointer class similar to boost::intrusive_ptr.
SourceApplication(bool allowPacketSocket=true)
Constructor.
EventId m_txEvent
Event id of pending TX event.
Ptr< Packet > m_unsentPacket
Unsent packet cached for future attempt.
void TxDone(Ptr< Socket > socket, uint32_t size)
Handle a Data Sent event.
void SendPacket()
Transmit the next VDI packet.
std::vector< Ptr< NormalRandomVariable > > m_pktSizeDistributions
Single or multi modal normal random variables to generate packet sizes in bytes.
ModelPresets
Model presets enumeration.
void DoStartApplication() override
Application specific startup code for child subclasses.
Ptr< ExponentialRandomVariable > m_interArrivalExponential
Exponential random variable to generate packet arrival times in nanoseconds.
uint32_t GetPacketSize() const
Get the size in bytes of the next VDI packet to send.
void SetParametersPacketSize(const std::vector< std::pair< double, double > > ¶ms)
Set the parameters of the normal random variable used to generate the VDI packet sizes.
ModelPresets m_modelPresets
Model presets to use to configure the VDI traffic model parameters.
~TgaxVirtualDesktop() override
Ptr< UniformRandomVariable > m_initialArrivalUniform
Uniform random variable to generate initial packet arrival in nanoseconds.
void ScheduleNext()
Schedule the next TX.
void TxAvailable(Ptr< Socket > socket, uint32_t available)
Handle a Send event.
void DoConnectionSucceeded(Ptr< Socket > socket) override
Application specific code for child subclasses upon a Connection Succeed event.
static TypeId GetTypeId()
Get the type ID.
void CancelEvents() override
Cancel all pending events.
int64_t AssignStreams(int64_t stream) override
Assign a fixed random variable stream number to the random variables used by this Application object.
Time GetInterArrival() const
Get the duration to use to schedule the TX of the next VDI packet.
Ptr< BernoulliRandomVariable > m_dlModeSelection
Uniform random variable to select mode for downlink bimodal distribution.
bool m_initialPacket
True if the next packet to send is the initial packet.
void DoInitialize() override
Initialize() implementation.
Simulation virtual time values and global simulation resolution.
a unique identifier for an interface.
Every class exported by the ns3 library is enclosed in the ns3 namespace.