satellite-stats-composite-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: Budiarto Herman <budiarto.herman@magister.fi>
19  *
20  */
21 
22 #ifndef SATELLITE_STATS_COMPOSITE_SINR_HELPER_H
23 #define SATELLITE_STATS_COMPOSITE_SINR_HELPER_H
24 
25 #include "satellite-stats-helper.h"
26 
27 #include <ns3/address.h>
28 #include <ns3/collector-map.h>
29 #include <ns3/ptr.h>
30 
31 #include <list>
32 #include <map>
33 #include <utility>
34 
35 namespace ns3
36 {
37 
38 // BASE CLASS /////////////////////////////////////////////////////////////////
39 
40 class SatHelper;
41 class Node;
42 class DataCollectionObject;
43 
50 {
51  public:
52  // inherited from SatStatsHelper base class
53  SatStatsCompositeSinrHelper(Ptr<const SatHelper> satHelper);
54 
59 
63  static TypeId GetTypeId();
64 
69  void InstallProbes();
70 
71  protected:
72  // inherited from SatStatsHelper base class
73  void DoInstall();
74 
78  virtual void DoInstallProbes() = 0;
79 
85  bool ConnectProbeToCollector(Ptr<Probe> probe, uint32_t identifier);
86 
92  bool DisconnectProbeFromCollector(Ptr<Probe> probe, uint32_t identifier);
93 
95  CollectorMap m_terminalCollectors;
96 
98  Ptr<DataCollectionObject> m_aggregator;
99 
100 }; // end of class SatStatsCompositeSinrHelper
101 
102 // FORWARD LINK ///////////////////////////////////////////////////////////////
103 
104 class Probe;
105 
124 {
125  public:
126  // inherited from SatStatsHelper base class
127  SatStatsFwdCompositeSinrHelper(Ptr<const SatHelper> satHelper);
128 
133 
137  static TypeId GetTypeId();
138 
142  virtual void UpdateIdentifierOnProbes();
143 
144  protected:
145  // inherited from SatStatsCompositeSinrHelper base class
146  void DoInstallProbes();
147 
148  private:
150  std::map<Ptr<Probe>, std::pair<Ptr<Node>, uint32_t>> m_probes;
151 
152 }; // end of class SatStatsFwdCompositeSinrHelper
153 
154 // RETURN LINK ////////////////////////////////////////////////////////////////
155 
174 {
175  public:
176  // inherited from SatStatsHelper base class
177  SatStatsRtnCompositeSinrHelper(Ptr<const SatHelper> satHelper);
178 
183 
187  static TypeId GetTypeId();
188 
195  void SinrCallback(double sinrDb, const Address& from);
196 
197  protected:
198  // inherited from SatStatsCompositeSinrHelper base class
199  void DoInstallProbes();
200 
201  private:
202 }; // end of class SatStatsRtnCompositeSinrHelper
203 
204 } // end of namespace ns3
205 
206 #endif /* SATELLITE_STATS_COMPOSITE_SINR_HELPER_H */
Abstract class inherited by SatStatsFwdCompositeSinrHelper and SatStatsRtnCompositeSinrHelper.
static TypeId GetTypeId()
inherited from ObjectBase base class
bool ConnectProbeToCollector(Ptr< Probe > probe, uint32_t identifier)
Connect the probe to the right collector.
void InstallProbes()
Set up several probes or other means of listeners and connect them to the collectors.
void DoInstall()
Install the probes, collectors, and aggregators necessary to produce the statistics output.
CollectorMap m_terminalCollectors
Maintains a list of collectors created by this helper.
bool DisconnectProbeFromCollector(Ptr< Probe > probe, uint32_t identifier)
Disconnect the probe from the right collector.
Ptr< DataCollectionObject > m_aggregator
The aggregator created by this helper.
SatStatsCompositeSinrHelper(Ptr< const SatHelper > satHelper)
Produce forward link composite SINR statistics from a satellite module simulation.
static TypeId GetTypeId()
inherited from ObjectBase base class
SatStatsFwdCompositeSinrHelper(Ptr< const SatHelper > satHelper)
virtual void UpdateIdentifierOnProbes()
Change identifier used on probes, when handovers occur.
std::map< Ptr< Probe >, std::pair< Ptr< Node >, uint32_t > > m_probes
Maintains a list of probes created by this helper.
Parent abstract class of all satellite statistics helpers.
Produce return link composite SINR statistics from a satellite module simulation.
SatStatsRtnCompositeSinrHelper(Ptr< const SatHelper > satHelper)
void SinrCallback(double sinrDb, const Address &from)
Receive inputs from trace sources and determine the right collector to forward the inputs to.
static TypeId GetTypeId()
inherited from ObjectBase base class
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.