View | Details | Raw Unified | Return to bug 1336
Collapse All | Expand All

(-)a/src/topology-read/model/rocketfuel-topology-reader.cc (-43 / +44 lines)
 Lines 34-58    Link Here 
34
34
35
NS_OBJECT_ENSURE_REGISTERED (RocketfuelTopologyReader);
35
NS_OBJECT_ENSURE_REGISTERED (RocketfuelTopologyReader);
36
36
37
TypeId RocketfuelTopologyReader::GetTypeId (void)
38
{
39
  static TypeId tid = TypeId ("ns3::RocketfuelTopologyReader")
40
    .SetParent<Object> ()
41
  ;
42
  return tid;
43
}
44
45
RocketfuelTopologyReader::RocketfuelTopologyReader ()
46
{
47
  NS_LOG_FUNCTION (this);
48
}
49
50
RocketfuelTopologyReader::~RocketfuelTopologyReader ()
51
{
52
  NS_LOG_FUNCTION (this);
53
}
54
55
/* uid @loc [+] [bb] (num_neigh) [&ext] -> <nuid-1> <nuid-2> ... {-euid} ... =name[!] rn */
56
37
57
#define REGMATCH_MAX 16
38
#define REGMATCH_MAX 16
58
39
 Lines 73-81    Link Here 
73
#define ROCKETFUEL_WEIGHTS_LINE \
54
#define ROCKETFUEL_WEIGHTS_LINE \
74
  START "([^ \t]+)" SPACE "([^ \t]+)" SPACE "([0-9.]+)" MAYSPACE END
55
  START "([^ \t]+)" SPACE "([^ \t]+)" SPACE "([0-9.]+)" MAYSPACE END
75
56
76
int linksNumber = 0;
57
77
int nodesNumber = 0;
58
TypeId RocketfuelTopologyReader::GetTypeId (void)
78
std::map<std::string, Ptr<Node> > nodeMap;
59
{
60
  static TypeId tid = TypeId ("ns3::RocketfuelTopologyReader")
61
    .SetParent<Object> ()
62
  ;
63
  return tid;
64
}
65
66
RocketfuelTopologyReader::RocketfuelTopologyReader ()
67
{
68
  NS_LOG_FUNCTION (this);
69
  m_linksNumber = 0;
70
  m_nodesNumber = 0;
71
}
72
73
RocketfuelTopologyReader::~RocketfuelTopologyReader ()
74
{
75
  NS_LOG_FUNCTION (this);
76
  m_nodeMap.clear();
77
}
78
79
/* uid @loc [+] [bb] (num_neigh) [&ext] -> <nuid-1> <nuid-2> ... {-euid} ... =name[!] rn */
79
80
80
void
81
void
81
PrintNodeInfo (std::string & uid, std::string & loc, bool dns, bool bb,
82
PrintNodeInfo (std::string & uid, std::string & loc, bool dns, bool bb,
 Lines 168-179    Link Here 
168
  // Create node and link
169
  // Create node and link
169
  if (!uid.empty ())
170
  if (!uid.empty ())
170
    {
171
    {
171
      if (nodeMap[uid] == 0)
172
      if (m_nodeMap[uid] == 0)
172
        {
173
        {
173
          Ptr<Node> tmpNode = CreateObject<Node> ();
174
          Ptr<Node> tmpNode = CreateObject<Node> ();
174
          nodeMap[uid] = tmpNode;
175
          m_nodeMap[uid] = tmpNode;
175
          nodes.Add (tmpNode);
176
          nodes.Add (tmpNode);
176
          nodesNumber++;
177
          m_nodesNumber++;
177
        }
178
        }
178
179
179
      for (uint32_t i = 0; i < neigh_list.size (); ++i)
180
      for (uint32_t i = 0; i < neigh_list.size (); ++i)
 Lines 185-201    Link Here 
185
              return nodes;
186
              return nodes;
186
            }
187
            }
187
188
188
          if (nodeMap[nuid] == 0)
189
          if (m_nodeMap[nuid] == 0)
189
            {
190
            {
190
              Ptr<Node> tmpNode = CreateObject<Node> ();
191
              Ptr<Node> tmpNode = CreateObject<Node> ();
191
              nodeMap[nuid] = tmpNode;
192
              m_nodeMap[nuid] = tmpNode;
192
              nodes.Add (tmpNode);
193
              nodes.Add (tmpNode);
193
              nodesNumber++;
194
              m_nodesNumber++;
194
            }
195
            }
195
          NS_LOG_INFO (linksNumber << ":" << nodesNumber << " From: " << uid << " to: " << nuid);
196
          NS_LOG_INFO (m_linksNumber << ":" << m_nodesNumber << " From: " << uid << " to: " << nuid);
196
          Link link (nodeMap[uid], uid, nodeMap[nuid], nuid);
197
          Link link (m_nodeMap[uid], uid, m_nodeMap[nuid], nuid);
197
          AddLink (link);
198
          AddLink (link);
198
          linksNumber++;
199
          m_linksNumber++;
199
        }
200
        }
200
    }
201
    }
201
  return nodes;
202
  return nodes;
 Lines 223-250    Link Here 
223
  // Create node and link
224
  // Create node and link
224
  if (!sname.empty () && !tname.empty ())
225
  if (!sname.empty () && !tname.empty ())
225
    {
226
    {
226
      if (nodeMap[sname] == 0)
227
      if (m_nodeMap[sname] == 0)
227
        {
228
        {
228
          Ptr<Node> tmpNode = CreateObject<Node> ();
229
          Ptr<Node> tmpNode = CreateObject<Node> ();
229
          nodeMap[sname] = tmpNode;
230
          m_nodeMap[sname] = tmpNode;
230
          nodes.Add (tmpNode);
231
          nodes.Add (tmpNode);
231
          nodesNumber++;
232
          m_nodesNumber++;
232
        }
233
        }
233
234
234
      if (nodeMap[tname] == 0)
235
      if (m_nodeMap[tname] == 0)
235
        {
236
        {
236
          Ptr<Node> tmpNode = CreateObject<Node> ();
237
          Ptr<Node> tmpNode = CreateObject<Node> ();
237
          nodeMap[tname] = tmpNode;
238
          m_nodeMap[tname] = tmpNode;
238
          nodes.Add (tmpNode);
239
          nodes.Add (tmpNode);
239
          nodesNumber++;
240
          m_nodesNumber++;
240
        }
241
        }
241
      NS_LOG_INFO (linksNumber << ":" << nodesNumber << " From: " << sname << " to: " << tname);
242
      NS_LOG_INFO (m_linksNumber << ":" << m_nodesNumber << " From: " << sname << " to: " << tname);
242
      TopologyReader::ConstLinksIterator iter;
243
      TopologyReader::ConstLinksIterator iter;
243
      bool found = false;
244
      bool found = false;
244
      for (iter = LinksBegin (); iter != LinksEnd (); iter++)
245
      for (iter = LinksBegin (); iter != LinksEnd (); iter++)
245
        {
246
        {
246
          if ((iter->GetFromNode () == nodeMap[tname])
247
          if ((iter->GetFromNode () == m_nodeMap[tname])
247
              && (iter->GetToNode () == nodeMap[sname]))
248
              && (iter->GetToNode () == m_nodeMap[sname]))
248
            {
249
            {
249
              found = true;
250
              found = true;
250
              break;
251
              break;
 Lines 253-261    Link Here 
253
254
254
      if (!found)
255
      if (!found)
255
        {
256
        {
256
          Link link (nodeMap[sname], sname, nodeMap[tname], tname);
257
          Link link (m_nodeMap[sname], sname, m_nodeMap[tname], tname);
257
          AddLink (link);
258
          AddLink (link);
258
          linksNumber++;
259
          m_linksNumber++;
259
        }
260
        }
260
    }
261
    }
261
  return nodes;
262
  return nodes;
 Lines 423-429    Link Here 
423
424
424
  topgen.close ();
425
  topgen.close ();
425
426
426
  NS_LOG_INFO ("Rocketfuel topology created with " << nodesNumber << " nodes and " << linksNumber << " links");
427
  NS_LOG_INFO ("Rocketfuel topology created with " << m_nodesNumber << " nodes and " << m_linksNumber << " links");
427
  return nodes;
428
  return nodes;
428
}
429
}
429
430
(-)a/src/topology-read/model/rocketfuel-topology-reader.h (+4 lines)
 Lines 78-83    Link Here 
78
  };
78
  };
79
  enum RF_FileType GetFileType (const char *);
79
  enum RF_FileType GetFileType (const char *);
80
80
81
  int m_linksNumber;
82
  int m_nodesNumber;
83
  std::map<std::string, Ptr<Node> > m_nodeMap;
84
81
  // end class RocketfuelTopologyReader
85
  // end class RocketfuelTopologyReader
82
};
86
};
83
87

Return to bug 1336