This file is indexed.

/usr/include/ns3.27/ns3/radio-environment-map-helper.h is in libns3-dev 3.27+dfsg-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
/*
 * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation;
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * Author: Nicola Baldo <nbaldo@cttc.es>
 */


#ifndef RADIO_ENVIRONMENT_MAP_HELPER_H
#define RADIO_ENVIRONMENT_MAP_HELPER_H


#include <ns3/object.h>
#include <fstream>


namespace ns3 {

class RemSpectrumPhy;
class Node;
class NetDevice;
class SpectrumChannel;
//class BuildingsMobilityModel;
class MobilityModel;

/** 
 * \ingroup lte
 *
 * Generates a 2D map of the SINR from the strongest transmitter in the
 * downlink of an LTE FDD system. For instructions on usage, please refer to
 * the User Documentation.
 */
class RadioEnvironmentMapHelper : public Object
{
public:  

  RadioEnvironmentMapHelper ();
  virtual ~RadioEnvironmentMapHelper ();
  
  // inherited from Object
  virtual void DoDispose (void);
  /**
   *  Register this type.
   *  \return The object TypeId.
   */
  static TypeId GetTypeId (void);

  /** 
   * \return the bandwidth (in num of RBs) over which SINR is calculated
   */
  uint8_t GetBandwidth () const;

  /** 
   *
   * \param bw  the bandwidth (in num of RBs) over which SINR is calculated
   */
  void SetBandwidth (uint8_t bw);

  /** 
   * Deploy the RemSpectrumPhy objects that generate the map according to the specified settings.
   * 
   */
  void Install ();

private:

  /**
   * Scheduled by Install() to perform the actual generation of map.
   *
   * If control channel is used for SINR calculation (the default), the delay
   * is 2.6 milliseconds from the start of simulation. Otherwise, if data
   * channel is used, the delay is 500.1 milliseconds from the start of
   * simulation.
   *
   * The method will divide the whole map into parts (each contains at most a
   * certain number of SINR listening points), and then call RunOneIteration()
   * on each part, one by one.
   */
  void DelayedInstall ();

  /**
   * Mobilize all the listeners to a specified area. Afterwards, schedule a
   * call to PrintAndReset() in 0.5 milliseconds.
   *
   * \param xMin X coordinate of the first SINR listening point to deploy.
   * \param xMax X coordinate of the last SINR listening point to deploy.
   * \param yMin Y coordinate of the first SINR listening point to deploy.
   * \param yMax Y coordinate of the last SINR listening point to deploy.
   */
  void RunOneIteration (double xMin, double xMax, double yMin, double yMax);

  /// Go through every listener, write the computed SINR, and then reset it.
  void PrintAndReset ();

  /// Called when the map generation procedure has been completed.
  void Finalize ();

  /// A complete Radio Environment Map is composed of many of this structure.
  struct RemPoint 
  {
    /// Simplified listener which compute SINR over the DL channel.
    Ptr<RemSpectrumPhy> phy;
    /// Position of the listener in the environment.
    Ptr<MobilityModel> bmm;
  };

  /// List of listeners in the environment.
  std::list<RemPoint> m_rem;

  double m_xMin;   ///< The `XMin` attribute.
  double m_xMax;   ///< The `XMax` attribute.
  uint16_t m_xRes; ///< The `XRes` attribute.
  double m_xStep;  ///< Distance along X axis between adjacent listening points.

  double m_yMin;   ///< The `YMin` attribute.
  double m_yMax;   ///< The `YMax` attribute.
  uint16_t m_yRes; ///< The `YRes` attribute.
  double m_yStep;  ///< Distance along Y axis between adjacent listening points.

  uint32_t m_maxPointsPerIteration;  ///< The `MaxPointsPerIteration` attribute.

  uint16_t m_earfcn;     ///< The `Earfcn` attribute.
  uint16_t m_bandwidth;  ///< The `Bandwidth` attribute.
 
  double m_z;  ///< The `Z` attribute.

  std::string m_channelPath;  ///< The `ChannelPath` attribute.
  std::string m_outputFile;   ///< The `OutputFile` attribute.

  bool m_stopWhenDone;   ///< The `StopWhenDone` attribute.
  
  /// The channel object taken from the `ChannelPath` attribute.
  Ptr<SpectrumChannel> m_channel;

  double m_noisePower;  ///< The `NoisePower` attribute.

  std::ofstream m_outFile;  ///< Stream the output to a file.

  bool m_useDataChannel;  ///< The `UseDataChannel` attribute.
  int32_t m_rbId;         ///< The `RbId` attribute.

}; // end of `class RadioEnvironmentMapHelper`


} // end of `namespace ns3`

#endif /* RADIO_ENVIRONMENT_MAP_HELPER_H */