IT++
4.3.1
Toggle main menu visibility
itpp
protocol
packet_generator.h
Go to the documentation of this file.
1
28
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
43
#include <
itpp/protocol/packet.h
>
44
45
namespace
itpp
46
{
47
49
50
54
class
Packet_Generator
55
{
56
public
:
58
Packet_Generator
(
const
int
Packet_size = 150,
const
unsigned
long
int
Max_packets = 0);
60
virtual
~Packet_Generator
();
62
Signal<Packet*>
output
;
64
Slot<Packet_Generator, bool>
start
;
66
void
set_parameters
(
const
int
Packet_size,
const
unsigned
long
int
Max_packets);
68
int
get_packet_size
();
70
int
get_max_packets
();
71
protected
:
73
virtual
Ttype
delta_t
() = 0;
74
private
:
75
Slot<Packet_Generator, Packet*>
next;
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
88
class
Poisson_Packet_Generator
:
public
Packet_Generator
89
{
90
public
:
92
Poisson_Packet_Generator
(
const
double
Avg_bit_rate = 1.0,
const
int
Packet_size = 150,
const
unsigned
long
int
Max_packets = 0);
94
virtual
~Poisson_Packet_Generator
();
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
();
99
protected
:
101
virtual
Ttype
delta_t
();
103
double
avg_delta_t
;
105
double
avg_bit_rate
;
107
Exponential_RNG
ee
;
108
};
109
110
114
class
Constant_Rate_Packet_Generator
:
public
Poisson_Packet_Generator
115
{
116
public
:
118
Constant_Rate_Packet_Generator
(
const
double
Avg_bit_rate = 1.0,
const
int
Packet_size = 150,
const
unsigned
long
int
Max_packets = 0);
120
virtual
~Constant_Rate_Packet_Generator
();
121
protected
:
123
virtual
Ttype
delta_t
();
124
};
125
129
class
Burst_WWW_Packet_Generator
:
public
Poisson_Packet_Generator
130
{
131
public
:
133
Burst_WWW_Packet_Generator
(
const
double
Avg_bit_rate = 1.0,
const
int
Packet_size = 150,
const
int
Max_packets = 0);
135
virtual
~Burst_WWW_Packet_Generator
();
136
protected
:
138
virtual
Ttype
delta_t
();
140
int
N
;
142
int
Navg
;
144
double
Ti
;
146
double
Tr
;
147
};
148
149
153
class
Sink
154
{
155
public
:
157
Sink
(
const
unsigned
long
int
Max_packets = 1000);
159
~Sink
();
160
// -- Slots -- //
162
Slot<Sink, Packet*>
packet_input
;
163
private
:
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
itpp::Burst_WWW_Packet_Generator::Ti
double Ti
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:144
itpp::Burst_WWW_Packet_Generator::Tr
double Tr
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:146
itpp::Burst_WWW_Packet_Generator::delta_t
virtual Ttype delta_t()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:146
itpp::Burst_WWW_Packet_Generator::~Burst_WWW_Packet_Generator
virtual ~Burst_WWW_Packet_Generator()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:141
itpp::Burst_WWW_Packet_Generator::N
int N
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:140
itpp::Burst_WWW_Packet_Generator::Navg
int Navg
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:142
itpp::Burst_WWW_Packet_Generator::Burst_WWW_Packet_Generator
Burst_WWW_Packet_Generator(const double Avg_bit_rate=1.0, const int Packet_size=150, const int Max_packets=0)
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:133
itpp::Constant_Rate_Packet_Generator::~Constant_Rate_Packet_Generator
virtual ~Constant_Rate_Packet_Generator()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:122
itpp::Constant_Rate_Packet_Generator::delta_t
virtual Ttype delta_t()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:124
itpp::Constant_Rate_Packet_Generator::Constant_Rate_Packet_Generator
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.
Definition
packet_generator.cpp:120
itpp::Exponential_RNG
Exponential distribution.
Definition
random.h:406
itpp::Packet_Generator::delta_t
virtual Ttype delta_t()=0
ADD DOCUMENTATION HERE.
itpp::Packet_Generator::set_parameters
void set_parameters(const int Packet_size, const unsigned long int Max_packets)
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:46
itpp::Packet_Generator::get_packet_size
int get_packet_size()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:54
itpp::Packet_Generator::output
Signal< Packet * > output
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:62
itpp::Packet_Generator::get_max_packets
int get_max_packets()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:59
itpp::Packet_Generator::start
Slot< Packet_Generator, bool > start
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:64
itpp::Packet_Generator::Packet_Generator
Packet_Generator(const int Packet_size=150, const unsigned long int Max_packets=0)
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:35
itpp::Packet_Generator::~Packet_Generator
virtual ~Packet_Generator()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:44
itpp::Packet
Definition
packet.h:56
itpp::Poisson_Packet_Generator::get_avg_bit_rate
double get_avg_bit_rate()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:106
itpp::Poisson_Packet_Generator::~Poisson_Packet_Generator
virtual ~Poisson_Packet_Generator()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:93
itpp::Poisson_Packet_Generator::avg_delta_t
double avg_delta_t
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:103
itpp::Poisson_Packet_Generator::avg_bit_rate
double avg_bit_rate
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:105
itpp::Poisson_Packet_Generator::Poisson_Packet_Generator
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.
Definition
packet_generator.cpp:86
itpp::Poisson_Packet_Generator::set_parameters
void set_parameters(const double Avg_bit_rate, const int Packet_size, const unsigned long int Max_packets)
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:95
itpp::Poisson_Packet_Generator::delta_t
virtual Ttype delta_t()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:112
itpp::Poisson_Packet_Generator::ee
Exponential_RNG ee
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:107
itpp::Signal
Signals and slots.
Definition
signals_slots.h:125
itpp::Sink::~Sink
~Sink()
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:172
itpp::Sink::Sink
Sink(const unsigned long int Max_packets=1000)
ADD DOCUMENTATION HERE.
Definition
packet_generator.cpp:162
itpp::Sink::packet_input
Slot< Sink, Packet * > packet_input
ADD DOCUMENTATION HERE.
Definition
packet_generator.h:162
itpp::Slot
Slot Class.
Definition
signals_slots.h:221
itpp
itpp namespace
Definition
itmex.h:37
itpp::Ttype
double Ttype
64-bit floating point time
Definition
events.h:54
packet.h
Definition of a Packet class.
random.h
Definition of classes for random number generators.
Generated by
1.17.0