This file is indexed.

/usr/include/ns3.26/ns3/uan-channel.h is in libns3-dev 3.26+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
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
 * Copyright (c) 2009 University of Washington
 *
 * 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: Leonard Tracy <lentracy@gmail.com>
 */

#ifndef UAN_CHANNEL_H
#define UAN_CHANNEL_H

#include "ns3/net-device.h"
#include "ns3/channel.h"
#include "ns3/packet.h"
#include "ns3/uan-prop-model.h"
#include "ns3/uan-noise-model.h"

#include <list>
#include <vector>

namespace ns3 {

class UanNetDevice;
class UanPhy;
class UanTransducer;
class UanTxMode;

/**
 * \ingroup uan
 *
 * Channel class used by UAN devices.
 */
class UanChannel : public Channel
{
public:
  /**
   * UanDeviceList is a standard template vector of pairs
   * (UanNetDevice, UanTransducer)
   */
  typedef std::vector<std::pair<Ptr<UanNetDevice>, Ptr<UanTransducer> > > UanDeviceList;

  UanChannel ();           //!< Constructor
  virtual ~UanChannel ();  //!< Dummy destructor, see DoDispose.

  /**
   * Register this type.
   * \return The object TypeId.
   */
  static TypeId GetTypeId (void);

  // Inherited methods
  virtual uint32_t GetNDevices (void) const;
  virtual Ptr<NetDevice> GetDevice (uint32_t i) const;

  /**
   * Send a packet out on the channel.
   *
   * \param src Transducer transmitting packet.
   * \param packet Packet to be transmitted.
   * \param txPowerDb Transmission power in dB.
   * \param txmode UanTxMode defining modulation of transmitted packet.
   */
  void TxPacket  (Ptr<UanTransducer> src, Ptr<Packet> packet, double txPowerDb,
                  UanTxMode txmode);

  /**
   * Adds device to receiver list for this channel.
   *
   * \param dev Net Device of node.
   * \param trans Transducer of net device attached to this channel.
   */
  void AddDevice (Ptr<UanNetDevice> dev, Ptr<UanTransducer> trans);

  /**
   * Set the propagation model this channel will use
   * for path loss/propagation delay.
   *
   * \param prop The propagation model.
   */
  void SetPropagationModel (Ptr<UanPropModel> prop);

  /**
   * Set the noise model this channel will use
   * to determine ambient channel noise.
   *
   * \param noise The noise model.
   */
  void SetNoiseModel  (Ptr<UanNoiseModel> noise);

  /**
   * Get the noise level on the channel.
   *
   * \param fKhz Frequency in kHz.
   * \return Ambient noise in dB/Hz on channel at a frequency.
   */
  double GetNoiseDbHz (double fKhz);

  /**
   * Clear all pointer references. */
  void Clear (void);

private:
  UanDeviceList m_devList;     //!< The list of devices on this channel.
  Ptr<UanPropModel> m_prop;    //!< The propagation model.
  Ptr<UanNoiseModel> m_noise;  //!< The noise model.
  /** Has Clear ever been called on the channel. */
  bool m_cleared;              

  /**
   * Send a packet up to the receiving UanTransducer.
   *
   * \param i Device number.
   * \param packet The received packet.
   * \param rxPowerDb Signal power in dB of arriving packet.
   * \param txMode Mode arriving packet is using.
   * \param pdp PDP of arriving signal.
   */
  void SendUp (uint32_t i, Ptr<Packet> packet, double rxPowerDb, UanTxMode txMode, UanPdp pdp);
  
protected:
  virtual void DoDispose (void);

};  // class UanChannel

} // namespace ns3

#endif /* UAN_CHANNEL_H */