Loading...
Searching...
No Matches
satellite-stats-link-sinr-helper.h
Go to the documentation of this file.
1/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2014 Magister Solutions
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: Bastien Tauran <bastien.tauran@viveris.fr>
19 *
20 */
21
22#ifndef SATELLITE_STATS_LINK_SINR_HELPER_H
23#define SATELLITE_STATS_LINK_SINR_HELPER_H
24
26
27#include "ns3/callback.h"
28#include "ns3/collector-map.h"
29#include "ns3/ptr.h"
30
31namespace ns3
32{
33
34// BASE CLASS /////////////////////////////////////////////////////////////////
35
36class SatHelper;
37class Node;
38class DataCollectionObject;
39class DistributionCollector;
40
46{
47 public:
48 // inherited from SatStatsHelper base class
49 SatStatsLinkSinrHelper(Ptr<const SatHelper> satHelper);
50
55
59 static TypeId GetTypeId();
60
64 void SetAveragingMode(bool averagingMode);
65
70 void InstallProbes();
71
77 void SinrCallback(double sinrDb, const Address& addr);
78
82 Callback<void, double, const Address&> GetTraceSinkCallback() const;
83
84 protected:
85 // inherited from SatStatsHelper base class
86 void DoInstall();
87
91 virtual void DoInstallProbes() = 0;
92
98 bool ConnectProbeToCollector(Ptr<Probe> probe, uint32_t identifier);
99
106 void PassSampleToCollector(double sinrDb, uint32_t identifier);
107
110
112 Ptr<DataCollectionObject> m_collector;
113
115 Ptr<DataCollectionObject> m_aggregator;
116
118 Ptr<DistributionCollector> m_averagingCollector;
119
120 private:
122 Callback<void, double, const Address&> m_traceSinkCallback;
123
125
126}; // end of class SatStatsLinkSinrHelper
127
128// FORWARD FEEDER LINK ////////////////////////////////////////////////////////
129
147{
148 public:
149 // inherited from SatStatsHelper base class
150 SatStatsFwdFeederLinkSinrHelper(Ptr<const SatHelper> satHelper);
151
156
160 static TypeId GetTypeId();
161
162 protected:
163 // inherited from SatStatsLinkSinrHelper base class
164 void DoInstallProbes();
165
166}; // end of class SatStatsFwdFeederLinkSinrHelper
167
168// FORWARD USER LINK //////////////////////////////////////////////////////////
169
187{
188 public:
189 // inherited from SatStatsHelper base class
190 SatStatsFwdUserLinkSinrHelper(Ptr<const SatHelper> satHelper);
191
196
200 static TypeId GetTypeId();
201
202 protected:
203 // inherited from SatStatsLinkSinrHelper base class
204 void DoInstallProbes();
205
206}; // end of class SatStatsFwdUserLinkSinrHelper
207
208// RETURN FEEDER LINK /////////////////////////////////////////////////////////
209
227{
228 public:
229 // inherited from SatStatsHelper base class
230 SatStatsRtnFeederLinkSinrHelper(Ptr<const SatHelper> satHelper);
231
236
240 static TypeId GetTypeId();
241
242 protected:
243 // inherited from SatStatsLinkSinrHelper base class
244 void DoInstallProbes();
245
246}; // end of class SatStatsRtnFeederLinkSinrHelper
247
248// RETURN USER LINK ///////////////////////////////////////////////////////////
249
267{
268 public:
269 // inherited from SatStatsHelper base class
270 SatStatsRtnUserLinkSinrHelper(Ptr<const SatHelper> satHelper);
271
276
280 static TypeId GetTypeId();
281
282 protected:
283 // inherited from SatStatsLinkSinrHelper base class
284 void DoInstallProbes();
285
286}; // end of class SatStatsRtnUserLinkSinrHelper
287
288} // end of namespace ns3
289
290#endif /* SATELLITE_STATS_LINK_SINR_HELPER_H */
Build a satellite network set with needed objects and configuration.
SatStatsHelper(Ptr< const SatHelper > satHelper)
Creates a new helper instance.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.