IT++ Logo
packet_generator.h
Go to the documentation of this file.
1
29#ifndef PACKET_GENERATOR_H
30#define PACKET_GENERATOR_H
31
32#include <itpp/base/random.h>
33
34#if (defined(_MSC_VER) && defined(ITPP_SHARED_LIB) && !(defined(itpp_EXPORTS) || defined(itpp_debug_EXPORTS)))
35
36#ifndef ITPP_PROTOCOL_EXCLUDED
37#define ITPP_PROTOCOL_EXCLUDED
38#pragma message( "PROTOCOL definitions are not available for MSVC shared builds" )
39#endif
40
41#else
42
44
45namespace itpp
46{
47
49
50
55{
56public:
58 Packet_Generator(const int Packet_size = 150, const unsigned long int Max_packets = 0);
60 virtual ~Packet_Generator();
66 void set_parameters(const int Packet_size, const unsigned long int Max_packets);
68 int get_packet_size();
70 int get_max_packets();
71protected:
73 virtual Ttype delta_t() = 0;
74private:
76 void handle_next(Packet*);
77 void handle_start(const bool run);
78 bool keep_running;
79 unsigned long int id;
80 int packet_size;
81 unsigned long int max_packets;
82};
83
84
89{
90public:
92 Poisson_Packet_Generator(const double Avg_bit_rate = 1.0, const int Packet_size = 150, const unsigned long int Max_packets = 0);
96 void set_parameters(const double Avg_bit_rate, const int Packet_size, const unsigned long int Max_packets);
98 double get_avg_bit_rate();
99protected:
101 virtual Ttype delta_t();
108};
109
110
115{
116public:
118 Constant_Rate_Packet_Generator(const double Avg_bit_rate = 1.0, const int Packet_size = 150, const unsigned long int Max_packets = 0);
121protected:
123 virtual Ttype delta_t();
124};
125
130{
131public:
133 Burst_WWW_Packet_Generator(const double Avg_bit_rate = 1.0, const int Packet_size = 150, const int Max_packets = 0);
136protected:
138 virtual Ttype delta_t();
140 int N;
142 int Navg;
144 double Ti;
146 double Tr;
147};
148
149
153class Sink
154{
155public:
157 Sink(const unsigned long int Max_packets = 1000);
159 ~Sink();
160 // -- Slots -- //
163private:
164 void handle_packet_input(Packet* packet);
165 unsigned long int Ncp;
166 unsigned long int Nbytes;
167 unsigned long int max_packets;
168 Ttype start_time;
169};
170
172
173} // namespace itpp
174
175#endif
176
177#endif // #ifndef PACKET_GENERATOR_H
178
double Ti
ADD DOCUMENTATION HERE.
double Tr
ADD DOCUMENTATION HERE.
virtual Ttype delta_t()
ADD DOCUMENTATION HERE.
virtual ~Burst_WWW_Packet_Generator()
ADD DOCUMENTATION HERE.
int N
ADD DOCUMENTATION HERE.
int Navg
ADD DOCUMENTATION HERE.
Burst_WWW_Packet_Generator(const double Avg_bit_rate=1.0, const int Packet_size=150, const int Max_packets=0)
ADD DOCUMENTATION HERE.
virtual ~Constant_Rate_Packet_Generator()
ADD DOCUMENTATION HERE.
virtual Ttype delta_t()
ADD DOCUMENTATION HERE.
Constant_Rate_Packet_Generator(const double Avg_bit_rate=1.0, const int Packet_size=150, const unsigned long int Max_packets=0)
ADD DOCUMENTATION HERE.
Exponential distribution.
Definition random.h:406
virtual Ttype delta_t()=0
ADD DOCUMENTATION HERE.
void set_parameters(const int Packet_size, const unsigned long int Max_packets)
ADD DOCUMENTATION HERE.
int get_packet_size()
ADD DOCUMENTATION HERE.
Signal< Packet * > output
ADD DOCUMENTATION HERE.
int get_max_packets()
ADD DOCUMENTATION HERE.
Slot< Packet_Generator, bool > start
ADD DOCUMENTATION HERE.
Packet_Generator(const int Packet_size=150, const unsigned long int Max_packets=0)
ADD DOCUMENTATION HERE.
virtual ~Packet_Generator()
ADD DOCUMENTATION HERE.
double get_avg_bit_rate()
ADD DOCUMENTATION HERE.
virtual ~Poisson_Packet_Generator()
ADD DOCUMENTATION HERE.
double avg_delta_t
ADD DOCUMENTATION HERE.
double avg_bit_rate
ADD DOCUMENTATION HERE.
Poisson_Packet_Generator(const double Avg_bit_rate=1.0, const int Packet_size=150, const unsigned long int Max_packets=0)
ADD DOCUMENTATION HERE.
void set_parameters(const double Avg_bit_rate, const int Packet_size, const unsigned long int Max_packets)
ADD DOCUMENTATION HERE.
virtual Ttype delta_t()
ADD DOCUMENTATION HERE.
Exponential_RNG ee
ADD DOCUMENTATION HERE.
Signals and slots.
~Sink()
ADD DOCUMENTATION HERE.
Sink(const unsigned long int Max_packets=1000)
ADD DOCUMENTATION HERE.
Slot< Sink, Packet * > packet_input
ADD DOCUMENTATION HERE.
Slot Class.
itpp namespace
Definition itmex.h:37
double Ttype
64-bit floating point time
Definition events.h:54
Definition of a Packet class.
Definition of classes for random number generators.
SourceForge Logo

Generated on Mon Apr 7 2025 07:53:18 for IT++ by Doxygen 1.11.0