satellite-stats-window-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_WINDOW_LOAD_HELPER_H
23 #define SATELLITE_STATS_WINDOW_LOAD_HELPER_H
24 
25 #include "satellite-stats-helper.h"
26 
27 #include <ns3/callback.h>
28 #include <ns3/ptr.h>
29 
30 namespace ns3
31 {
32 
33 // BASE CLASS /////////////////////////////////////////////////////////////////
34 
35 class SatHelper;
36 class Node;
37 class DataCollectionObject;
38 
44 {
45  public:
46  // inherited from SatStatsHelper base class
47  SatStatsWindowLoadHelper(Ptr<const SatHelper> satHelper);
48 
52  virtual ~SatStatsWindowLoadHelper();
53 
57  static TypeId GetTypeId();
58 
63  void InstallProbes();
64 
69  void WindowLoadCallback(double windowLoad);
70 
74  Callback<void, double> GetTraceSinkCallback() const;
75 
76  protected:
77  // inherited from SatStatsHelper base class
78  void DoInstall();
79 
83  virtual void DoInstallProbes() = 0;
84 
86  Ptr<DataCollectionObject> m_collector;
87 
89  Ptr<DataCollectionObject> m_aggregator;
90 
91  private:
93  Callback<void, double> m_traceSinkCallback;
94 
95 }; // end of class SatStatsWindowLoadHelper
96 
97 // RETURN FEEDER LINK /////////////////////////////////////////////////////////
98 
116 {
117  public:
118  // inherited from SatStatsHelper base class
119  SatStatsRtnFeederWindowLoadHelper(Ptr<const SatHelper> satHelper);
120 
125 
129  static TypeId GetTypeId();
130 
131  protected:
132  // inherited from SatStatsWindowLoadHelper base class
133  void DoInstallProbes();
134 
135 }; // end of class SatStatsRtnFeederWindowLoadHelper
136 
137 } // end of namespace ns3
138 
139 #endif /* SATELLITE_STATS_WINDOW_LOAD_HELPER_H */
Parent abstract class of all satellite statistics helpers.
Produce return feeder window load statistics from a satellite module simulation.
SatStatsRtnFeederWindowLoadHelper(Ptr< const SatHelper > satHelper)
static TypeId GetTypeId()
inherited from ObjectBase base class
Abstract class inherited by SatStatsRtnFeederWindowLoadHelper.
void WindowLoadCallback(double windowLoad)
Receive inputs from trace sources and forward them to the collector.
Ptr< DataCollectionObject > m_aggregator
The aggregator created by this helper.
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.
Callback< void, double > GetTraceSinkCallback() const
virtual void DoInstallProbes()=0
SatStatsWindowLoadHelper(Ptr< const SatHelper > satHelper)
Ptr< DataCollectionObject > m_collector
The collector created by this helper.
static TypeId GetTypeId()
inherited from ObjectBase base class
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.