Simplified and unified implementation of RocketfuelWeightReader
diff --git a/model/rocketfuel-weights-reader.h b/model/rocketfuel-weights-reader.h
index 21c2144..2b73c11 100644
--- a/model/rocketfuel-weights-reader.h
+++ b/model/rocketfuel-weights-reader.h
@@ -19,72 +19,60 @@
* Ilya Moiseenko <iliamo@cs.ucla.edu>
*/
-#ifndef ROCKETFUEL_TOPOLOGY_READER_H
-#define ROCKETFUEL_TOPOLOGY_READER_H
+#ifndef ROCKETFUEL_TOPOLOGY_WEIGHTS_READER_H
+#define ROCKETFUEL_TOPOLOGY_WEIGHTS_READER_H
-#include "ns3/topology-reader.h"
+#include "annotated-topology-reader.h"
#include "ns3/net-device-container.h"
namespace ns3 {
-
- // ------------------------------------------------------------
- // --------------------------------------------
- /**
- * \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 RocketfuelWeightsReader : public TopologyReader
+// ------------------------------------------------------------
+// --------------------------------------------
+/**
+ * \brief Topology file reader (extension of Rocketfuel-format type).
+ *
+ * http://www.cs.washington.edu/research/networking/rocketfuel/
+ *
+ * Only weights and latencies file is supported
+ */
+class RocketfuelWeightsReader : public AnnotatedTopologyReader
+{
+public:
+ RocketfuelWeightsReader ();
+ virtual ~RocketfuelWeightsReader ();
+
+ void
+ SetFileType (uint8_t inputType);
+
+ /**
+ * \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);
+
+ enum
{
- public:
- static TypeId GetTypeId (void);
-
- RocketfuelWeightsReader ();
- virtual ~RocketfuelWeightsReader ();
-
- /**
- * \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)
- */
- NodeContainer Read (std::string latenciesFile);
-
- virtual NodeContainer Read (void);
-
- void ApplySettings(NetDeviceContainer* ndc, NodeContainer* nc);
-
- private:
- RocketfuelWeightsReader (const RocketfuelWeightsReader&);
- RocketfuelWeightsReader& operator= (const RocketfuelWeightsReader&);
- // Parser for the weights.* file available at:
- // http://www.cs.washington.edu/research/networking/rocketfuel/maps/weights-dist.tar.gz
- NodeContainer GenerateFromWeightsFile (int argc, char *argv[], char *argl[]);
-
- enum RF_FileType
- {
- RF_MAPS,
- RF_WEIGHTS,
- RF_UNKNOWN
- };
- enum RF_FileType GetFileType (const char *);
-
- // end class RocketfuelWeightsReader
+ WEIGHTS,
+ LATENCIES
};
-
- // end namespace ns3
-};
+
+private:
+ RocketfuelWeightsReader (const RocketfuelWeightsReader&);
+ RocketfuelWeightsReader& operator= (const RocketfuelWeightsReader&);
+
+private:
+ uint8_t m_inputType;
+
+}; // end class RocketfuelWeightsReader
+
+}; // end namespace ns3
-#endif /* ROCKETFUEL_TOPOLOGY_READER_H */
-
-
+#endif /* ROCKETFUEL_TOPOLOGY_WEIGHTS_READER_H */