satellite-stats-signalling-load-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_SIGNALLING_LOAD_HELPER_H
23 #define SATELLITE_STATS_SIGNALLING_LOAD_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 Packet;
43 class DataCollectionObject;
44 
51 {
52  public:
53  // inherited from SatStatsHelper base class
54  SatStatsSignallingLoadHelper(Ptr<const SatHelper> satHelper);
55 
60 
64  static TypeId GetTypeId();
65 
70  void InstallProbes();
71 
81  void SignallingTxCallback(Ptr<const Packet> packet, const Address& to);
82 
83  protected:
84  // inherited from SatStatsHelper base class
85  void DoInstall();
86 
90  virtual void DoInstallProbes() = 0;
91 
93  CollectorMap m_conversionCollectors;
94 
96  CollectorMap m_terminalCollectors;
97 
99  Ptr<DataCollectionObject> m_aggregator;
100 
101 }; // end of class SatStatsSignallingLoadHelper
102 
103 // FORWARD LINK ///////////////////////////////////////////////////////////////
104 
123 {
124  public:
125  // inherited from SatStatsHelper base class
126  SatStatsFwdSignallingLoadHelper(Ptr<const SatHelper> satHelper);
127 
132 
136  static TypeId GetTypeId();
137 
138  protected:
139  // inherited from SatStatsThroughputHelper base class
140  void DoInstallProbes();
141 
142 }; // end of class SatStatsFwdSignallingLoadHelper
143 
144 // RETURN LINK ////////////////////////////////////////////////////////////////
145 
146 class Probe;
147 
166 {
167  public:
168  // inherited from SatStatsHelper base class
169  SatStatsRtnSignallingLoadHelper(Ptr<const SatHelper> satHelper);
170 
175 
179  static TypeId GetTypeId();
180 
184  virtual void UpdateIdentifierOnProbes();
185 
186  protected:
187  // inherited from SatStatsThroughputHelper base class
188  void DoInstallProbes();
189 
190  private:
192  std::map<Ptr<Probe>, std::pair<Ptr<Node>, uint32_t>> m_probes;
193 
194 }; // end of class SatStatsRtnSignallingLoadHelper
195 
196 } // end of namespace ns3
197 
198 #endif /* SATELLITE_STATS_SIGNALLING_LOAD_HELPER_H */
Produce forward link signalling load statistics from a satellite module simulation.
SatStatsFwdSignallingLoadHelper(Ptr< const SatHelper > satHelper)
static TypeId GetTypeId()
inherited from ObjectBase base class
Parent abstract class of all satellite statistics helpers.
Produce return link signalling load statistics from a satellite module simulation.
SatStatsRtnSignallingLoadHelper(Ptr< const SatHelper > satHelper)
std::map< Ptr< Probe >, std::pair< Ptr< Node >, uint32_t > > m_probes
Maintains a list of probes created by this helper.
static TypeId GetTypeId()
inherited from ObjectBase base class
virtual void UpdateIdentifierOnProbes()
Change identifier used on probes, when handovers occur.
Abstract class inherited by SatStatsFwdSignallingLoadHelper and SatStatsRtnSignallingLoadHelper.
Ptr< DataCollectionObject > m_aggregator
The aggregator created by this helper.
void DoInstall()
Install the probes, collectors, and aggregators necessary to produce the statistics output.
void InstallProbes()
Set up several probes or other means of listeners and connect them to the first-level collectors.
CollectorMap m_terminalCollectors
Maintains a list of second-level collectors created by this helper.
void SignallingTxCallback(Ptr< const Packet > packet, const Address &to)
Receive inputs from trace sources and determine the right collector to forward the inputs to.
static TypeId GetTypeId()
inherited from ObjectBase base class
SatStatsSignallingLoadHelper(Ptr< const SatHelper > satHelper)
CollectorMap m_conversionCollectors
Maintains a list of first-level collectors created by this helper.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.