A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
onoff-application.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: George F. Riley<riley@ece.gatech.edu>
19
//
20
21
// ns3 - On/Off Data Source Application class
22
// George F. Riley, Georgia Tech, Spring 2007
23
// Adapted from ApplicationOnOff in GTNetS.
24
25
#ifndef ONOFF_APPLICATION_H
26
#define ONOFF_APPLICATION_H
27
28
#include "ns3/address.h"
29
#include "ns3/application.h"
30
#include "ns3/event-id.h"
31
#include "ns3/ptr.h"
32
#include "ns3/data-rate.h"
33
#include "ns3/traced-callback.h"
34
35
namespace
ns3 {
36
37
class
Address;
38
class
RandomVariableStream;
39
class
Socket;
40
86
class
OnOffApplication
:
public
Application
87
{
88
public
:
89
static
TypeId
GetTypeId
(
void
);
90
91
OnOffApplication
();
92
93
virtual
~OnOffApplication
();
94
102
void
SetMaxBytes
(uint32_t maxBytes);
103
107
Ptr<Socket>
GetSocket
(
void
)
const
;
108
117
int64_t
AssignStreams
(int64_t stream);
118
119
protected
:
120
virtual
void
DoDispose
(
void
);
121
private
:
122
// inherited from Application base class.
123
virtual
void
StartApplication
(
void
);
// Called at time specified by Start
124
virtual
void
StopApplication
(
void
);
// Called at time specified by Stop
125
126
//helpers
127
void
CancelEvents
();
128
129
void
Construct
(
Ptr<Node>
n,
130
const
Address
&remote,
131
std::string tid,
132
const
RandomVariable
& ontime,
133
const
RandomVariable
& offtime,
134
uint32_t size);
135
136
137
// Event handlers
138
void
StartSending
();
139
void
StopSending
();
140
void
SendPacket
();
141
142
Ptr<Socket>
m_socket
;
// Associated socket
143
Address
m_peer
;
// Peer address
144
bool
m_connected
;
// True if connected
145
Ptr<RandomVariableStream>
m_onTime
;
// rng for On Time
146
Ptr<RandomVariableStream>
m_offTime
;
// rng for Off Time
147
DataRate
m_cbrRate
;
// Rate that data is generated
148
uint32_t
m_pktSize
;
// Size of packets
149
uint32_t
m_residualBits
;
// Number of generated, but not sent, bits
150
Time
m_lastStartTime
;
// Time last packet sent
151
uint32_t
m_maxBytes
;
// Limit total number of bytes sent
152
uint32_t
m_totBytes
;
// Total bytes sent so far
153
EventId
m_startStopEvent
;
// Event id for next start or stop event
154
EventId
m_sendEvent
;
// Eventid of pending "send packet" event
155
bool
m_sending
;
// True if currently in sending state
156
TypeId
m_tid
;
157
TracedCallback<Ptr<const Packet>
>
m_txTrace
;
158
159
private
:
160
void
ScheduleNextTx
();
161
void
ScheduleStartEvent
();
162
void
ScheduleStopEvent
();
163
void
ConnectionSucceeded
(
Ptr<Socket>
socket);
164
void
ConnectionFailed
(
Ptr<Socket>
socket);
165
};
166
167
}
// namespace ns3
168
169
#endif
/* ONOFF_APPLICATION_H */
ns3::OnOffApplication::StopSending
void StopSending()
Definition:
onoff-application.cc:216
ns3::Time
keep track of time values and allow control of global simulation resolution
Definition:
nstime.h:81
ns3::Ptr< Socket >
ns3::OnOffApplication::StartApplication
virtual void StartApplication(void)
Application specific startup code.
Definition:
onoff-application.cc:144
ns3::OnOffApplication::m_sendEvent
EventId m_sendEvent
Definition:
onoff-application.h:154
ns3::OnOffApplication::m_pktSize
uint32_t m_pktSize
Definition:
onoff-application.h:148
ns3::TracedCallback
forward calls to a chain of CallbackAn ns3::TracedCallback has almost exactly the same API as a norma...
Definition:
traced-callback.h:43
ns3::OnOffApplication::ScheduleStartEvent
void ScheduleStartEvent()
Definition:
onoff-application.cc:245
ns3::OnOffApplication::CancelEvents
void CancelEvents()
Definition:
onoff-application.cc:192
ns3::OnOffApplication
Generate traffic to a single destination according to an OnOff pattern.
Definition:
onoff-application.h:86
ns3::OnOffApplication::ScheduleStopEvent
void ScheduleStopEvent()
Definition:
onoff-application.cc:254
ns3::Address
a polymophic address class
Definition:
address.h:86
ns3::DataRate
Class for representing data rates.
Definition:
data-rate.h:71
ns3::OnOffApplication::DoDispose
virtual void DoDispose(void)
Definition:
onoff-application.cc:134
ns3::OnOffApplication::m_startStopEvent
EventId m_startStopEvent
Definition:
onoff-application.h:153
ns3::OnOffApplication::SendPacket
void SendPacket()
Definition:
onoff-application.cc:264
ns3::OnOffApplication::m_tid
TypeId m_tid
Definition:
onoff-application.h:156
ns3::Application
The base class for all ns3 applications.
Definition:
application.h:61
ns3::OnOffApplication::m_peer
Address m_peer
Definition:
onoff-application.h:143
ns3::OnOffApplication::m_cbrRate
DataRate m_cbrRate
Definition:
onoff-application.h:147
ns3::OnOffApplication::m_onTime
Ptr< RandomVariableStream > m_onTime
Definition:
onoff-application.h:145
ns3::OnOffApplication::GetSocket
Ptr< Socket > GetSocket(void) const
Definition:
onoff-application.cc:118
ns3::OnOffApplication::m_socket
Ptr< Socket > m_socket
Definition:
onoff-application.h:142
ns3::OnOffApplication::AssignStreams
int64_t AssignStreams(int64_t stream)
Definition:
onoff-application.cc:125
ns3::OnOffApplication::Construct
void Construct(Ptr< Node > n, const Address &remote, std::string tid, const RandomVariable &ontime, const RandomVariable &offtime, uint32_t size)
ns3::OnOffApplication::m_offTime
Ptr< RandomVariableStream > m_offTime
Definition:
onoff-application.h:146
ns3::OnOffApplication::m_txTrace
TracedCallback< Ptr< const Packet > > m_txTrace
Definition:
onoff-application.h:157
ns3::OnOffApplication::ScheduleNextTx
void ScheduleNextTx()
Definition:
onoff-application.cc:225
ns3::OnOffApplication::StartSending
void StartSending()
Definition:
onoff-application.cc:208
ns3::OnOffApplication::SetMaxBytes
void SetMaxBytes(uint32_t maxBytes)
Definition:
onoff-application.cc:111
ns3::OnOffApplication::ConnectionSucceeded
void ConnectionSucceeded(Ptr< Socket > socket)
Definition:
onoff-application.cc:297
ns3::OnOffApplication::~OnOffApplication
virtual ~OnOffApplication()
Definition:
onoff-application.cc:105
ns3::OnOffApplication::m_lastStartTime
Time m_lastStartTime
Definition:
onoff-application.h:150
ns3::OnOffApplication::GetTypeId
static TypeId GetTypeId(void)
Definition:
onoff-application.cc:52
ns3::EventId
an identifier for simulation events.
Definition:
event-id.h:46
ns3::OnOffApplication::m_maxBytes
uint32_t m_maxBytes
Definition:
onoff-application.h:151
ns3::OnOffApplication::ConnectionFailed
void ConnectionFailed(Ptr< Socket > socket)
Definition:
onoff-application.cc:303
ns3::OnOffApplication::m_totBytes
uint32_t m_totBytes
Definition:
onoff-application.h:152
ns3::OnOffApplication::m_connected
bool m_connected
Definition:
onoff-application.h:144
ns3::RandomVariable
The basic RNG for NS-3.Note: The underlying random number generation method used by NS-3 is the RngSt...
Definition:
random-variable.h:60
ns3::OnOffApplication::StopApplication
virtual void StopApplication(void)
Application specific shutdown code.
Definition:
onoff-application.cc:177
ns3::OnOffApplication::OnOffApplication
OnOffApplication()
Definition:
onoff-application.cc:95
ns3::OnOffApplication::m_sending
bool m_sending
Definition:
onoff-application.h:155
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:49
ns3::OnOffApplication::m_residualBits
uint32_t m_residualBits
Definition:
onoff-application.h:149
src
applications
model
onoff-application.h
Generated on Sun Apr 20 2014 11:14:45 for ns-3 by
1.8.6