This file is indexed.

/usr/include/ns3.26/ns3/rocketfuel-topology-reader.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
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
 * Copyright (c) 2010 Hajime Tazaki
 *
 * 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: Hajime Tazaki (tazaki@sfc.wide.ad.jp)
 */

#ifndef ROCKETFUEL_TOPOLOGY_READER_H
#define ROCKETFUEL_TOPOLOGY_READER_H

#include "ns3/nstime.h"
#include "topology-reader.h"

namespace ns3 {


// ------------------------------------------------------------
// --------------------------------------------
/**
 * \ingroup topology
 *
 * \brief Topology file reader (Rocketfuel-format type).
 *
 * http://www.cs.washington.edu/research/networking/rocketfuel/
 *
 * May 2nd, 2010: Currently only support "weights" file and "cch" file.
 * http://www.cs.washington.edu/research/networking/rocketfuel/maps/weights-dist.tar.gz
 * http://www.cs.washington.edu/research/networking/rocketfuel/maps/rocketfuel_maps_cch.tar.gz
 */
class RocketfuelTopologyReader : public TopologyReader
{
public:
  /**
   * \brief Get the type ID.
   * \return The object TypeId
   */
  static TypeId GetTypeId (void);

  RocketfuelTopologyReader ();
  virtual ~RocketfuelTopologyReader ();

  /**
   * \brief Main topology reading function.
   *
   * This method opens an input stream and reads the Rocketfuel-format file.
   * Every row represents a topology link (the ids of a couple of nodes),
   * so the input file is read line by line to figure out how many links
   * and nodes are in the topology.
   *
   * \return The container of the nodes created (or empty container if there was an error)
   */
  virtual NodeContainer Read (void);

private:
  /**
   * \brief Topology read function from a file containing the nodes map.
   *
   * Parser for the *.cch file available at:
   * http://www.cs.washington.edu/research/networking/rocketfuel/maps/rocketfuel_maps_cch.tar.gz
   *
   * \param [in] argc Argument counter.
   * \param [in] argv Argument vector.
   * \return The container of the nodes created (or empty container if there was an error).
   */
  NodeContainer GenerateFromMapsFile (int argc, char *argv[]);

  /**
   * \brief Topology read function from a file containing the nodes weights.
   *
   * Parser for the weights.* file available at:
   * http://www.cs.washington.edu/research/networking/rocketfuel/maps/weights-dist.tar.gz
   *
   * \param [in] argc Argument counter.
   * \param [in] argv Argument vector.
   * \return The container of the nodes created (or empty container if there was an error).
   */
  NodeContainer GenerateFromWeightsFile (int argc, char *argv[]);

  /**
   * \brief Enum of the possible file types.
   */
  enum RF_FileType
  {
    RF_MAPS,
    RF_WEIGHTS,
    RF_UNKNOWN
  };


  /**
   * \brief Classifies the file type according to its content.
   *
   * \return The file type (RF_MAPS, RF_WEIGHTS, or RF_UNKNOWN)
   */
  enum RF_FileType GetFileType (const char *);

  int m_linksNumber; //!< Number of links.
  int m_nodesNumber; //!< Number of nodes.
  std::map<std::string, Ptr<Node> > m_nodeMap; //!< Map of the nodes (name, node).

private:
  /**
   * \brief Copy constructor
   *
   * Defined and unimplemented to avoid misuse.
   */
  RocketfuelTopologyReader (const RocketfuelTopologyReader&);
  /**
   * \brief Copy constructor
   *
   * Defined and unimplemented to avoid misuse.
   * \returns
   */
  RocketfuelTopologyReader& operator= (const RocketfuelTopologyReader&);


  // end class RocketfuelTopologyReader
};

// end namespace ns3
};


#endif /* ROCKETFUEL_TOPOLOGY_READER_H */