/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 */
|