This file is indexed.

/usr/include/ns3/lte-mac-queue.h is in libns3-dev 3.13+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
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
 * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari
 *
 * 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: Giuseppe Piro  <g.piro@poliba.it>
 */

#ifndef LTE_MAC_QUEUE_H
#define LTE_MAC_QUEUE_H

#include <queue>
#include <stdint.h>
#include "ns3/packet.h"
#include "ns3/object.h"
#include "ns3/traced-callback.h"
#include "ns3/nstime.h"

namespace ns3 {

/**
 * \ingroup lte
 *
 * The MAC queue for each bearer
 */
class LteMacQueue : public Object
{
public:
  static TypeId GetTypeId (void);
  LteMacQueue (void);

  /**
   * Create the Mac queue defining its maximum size
   * \param maxSize the maximum size of the queue
   */
  LteMacQueue (uint32_t maxSize);
  ~LteMacQueue (void);

  /**
   * \brief set the maximum queue size
   * \param maxSize the max queue size
   */
  void SetMaxSize (uint32_t maxSize);
  /**
   * \return the maximum queue size
   */
  uint32_t GetMaxSize (void) const;


  /**
   * \brief Enqueue a packet
   * \param packet the packet to enqueue
   */
  bool Enqueue (Ptr<Packet> packet);

  /**
   * \brief Dequeue  a packet from the queue
   * \return the first packet in the queue
   */
  Ptr<Packet> Dequeue (void);

  /**
   * \brief Dequeue a fragment of size availableByte from the queue
   * \param availableByte the size of the fragment
   * \return the first packet in the queue if its size is lower than availableByte, the first availableByte of the
   * first packet otherwise
   */
  Ptr<Packet> Dequeue (uint32_t availableByte);

  /**
   * \brief Same as Dequeue but does not pop from queue
   */
  Ptr<Packet> Peek (void) const;

  /**
   * \brief Check if there are packets into the queue
   */
  bool IsEmpty (void) const;


  /**
   * \brief Get the size of the queue
   * \return the size of the queue
   */
  uint32_t GetSize (void) const;


  /**
   * \brief Get the number of bytes into the queue
   * \return the number of bytes into the queue
   */
  uint32_t GetNBytes (void) const;
  /**
   * \brief Get the length of the queue with MAC + RLC + CRC overhead
   * \return the length of the queue with MAC + RLC + CRC overhead
   */
  uint32_t GetQueueLengthWithMACOverhead (void);




private:
  struct QueueElement
  {
    QueueElement (void);
    QueueElement (Ptr<Packet> packet,
                  Time timeStamp);
    uint32_t GetSize (void) const;
    Ptr<Packet> m_packet;
    Time m_timeStamp;
  };


  /**
   * \brief Get the first element og the queue
   * \return the first element og the queue
   */
  LteMacQueue::QueueElement Front () const;

  /**
   * \brief erase the first element og the queue
   */
  void Pop (void);

  typedef std::deque<QueueElement> PacketQueue;
  PacketQueue m_queue;

  uint32_t m_maxSize;
  uint32_t m_bytes;
  uint32_t m_nrDataPackets;

  TracedCallback<Ptr<const Packet> > m_traceEnqueue;
  TracedCallback<Ptr<const Packet> > m_traceDequeue;
  TracedCallback<Ptr<const Packet> > m_traceDrop;

public:
  /**
   * \brief Get the packet queue
   * \return the apcket queue
   */
  const LteMacQueue::PacketQueue & GetPacketQueue (void) const;
};

} // namespace ns3

#endif /* LTE_MAC_QUEUE_H */