NS-3 based Named Data Networking (NDN) simulator
ndnSIM: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
ndn-consumer-window.h
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2011 University of California, Los Angeles
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: Ilya Moiseenko <iliamo@cs.ucla.edu>
19
* Alexander Afanasyev <alexander.afanasyev@ucla.edu>
20
*/
21
22
#ifndef NDN_CONSUMER_WINDOW_H
23
#define NDN_CONSUMER_WINDOW_H
24
25
#include "ndn-consumer.h"
26
#include "ns3/traced-value.h"
27
28
namespace
ns3 {
29
namespace
ndn {
30
38
class
ConsumerWindow
:
public
Consumer
39
{
40
public
:
41
static
TypeId GetTypeId ();
42
46
ConsumerWindow
();
47
48
// From App
49
// virtual void
50
// OnInterest (const Ptr<const Interest> &interest);
51
52
virtual
void
53
OnNack
(Ptr<const Interest> interest);
54
55
virtual
void
56
OnData
(Ptr<const Data> contentObject);
57
58
virtual
void
59
OnTimeout
(uint32_t sequenceNumber);
60
61
virtual
void
62
WillSendOutInterest
(uint32_t sequenceNumber);
63
64
protected
:
68
virtual
void
69
ScheduleNextPacket
();
70
71
private
:
72
virtual
void
73
SetWindow (uint32_t window);
74
75
uint32_t
76
GetWindow ()
const
;
77
78
virtual
void
79
SetPayloadSize (uint32_t payload);
80
81
uint32_t
82
GetPayloadSize ()
const
;
83
84
double
85
GetMaxSize ()
const
;
86
87
void
88
SetMaxSize (
double
size);
89
90
uint32_t
91
GetSeqMax ()
const
;
92
93
void
94
SetSeqMax (uint32_t seqMax);
95
96
private
:
97
uint32_t m_payloadSize;
// expected payload size
98
double
m_maxSize;
// max size to request
99
100
uint32_t m_initialWindow;
101
bool
m_setInitialWindowOnTimeout;
102
103
TracedValue<uint32_t> m_window;
104
TracedValue<uint32_t> m_inFlight;
105
};
106
107
}
// namespace ndn
108
}
// namespace ns3
109
110
#endif
ns3::ndn::ConsumerWindow::OnData
virtual void OnData(Ptr< const Data > contentObject)
Method that will be called every time new Data arrives.
Definition:
ndn-consumer-window.cc:189
ns3::ndn::Consumer
NDN application for sending out Interest packets.
Definition:
ndn-consumer.h:47
ns3::ndn::ConsumerWindow::OnNack
virtual void OnNack(Ptr< const Interest > interest)
Method that will be called every time new NACK arrives.
Definition:
ndn-consumer-window.cc:202
ns3::ndn::ConsumerWindow::WillSendOutInterest
virtual void WillSendOutInterest(uint32_t sequenceNumber)
An event that is fired just before an Interest packet is actually send out (send is inevitable) ...
Definition:
ndn-consumer-window.cc:235
ns3::ndn::ConsumerWindow::ScheduleNextPacket
virtual void ScheduleNextPacket()
Constructs the Interest packet and sends it using a callback to the underlying NDN protocol...
Definition:
ndn-consumer-window.cc:159
ns3::ndn::ConsumerWindow::OnTimeout
virtual void OnTimeout(uint32_t sequenceNumber)
Timeout event.
Definition:
ndn-consumer-window.cc:220
ns3::ndn::ConsumerWindow
Ndn application for sending out Interest packets (window-based)
Definition:
ndn-consumer-window.h:38
ns3::ndn::ConsumerWindow::ConsumerWindow
ConsumerWindow()
Default constructor.
Definition:
ndn-consumer-window.cc:87
ndnSIM
apps
ndn-consumer-window.h
Generated on Mon Jan 19 2015 11:27:03 for ndnSIM by
1.8.7