24 #include "ns3/csma-net-device.h" |
24 #include "ns3/csma-net-device.h" |
25 #include "ns3/csma-channel.h" |
25 #include "ns3/csma-channel.h" |
26 #include "ns3/pcap-writer.h" |
26 #include "ns3/pcap-writer.h" |
27 #include "ns3/config.h" |
27 #include "ns3/config.h" |
28 #include "ns3/packet.h" |
28 #include "ns3/packet.h" |
|
29 #include "ns3/object-names.h" |
29 #include <string> |
30 #include <string> |
30 |
31 |
31 namespace ns3 { |
32 namespace ns3 { |
32 |
33 |
33 CsmaHelper::CsmaHelper () |
34 CsmaHelper::CsmaHelper () |
179 Ptr<CsmaChannel> channel = m_channelFactory.Create ()->GetObject<CsmaChannel> (); |
180 Ptr<CsmaChannel> channel = m_channelFactory.Create ()->GetObject<CsmaChannel> (); |
180 return Install (node, channel); |
181 return Install (node, channel); |
181 } |
182 } |
182 |
183 |
183 NetDeviceContainer |
184 NetDeviceContainer |
|
185 CsmaHelper::Install (std::string nodeName) const |
|
186 { |
|
187 Ptr<Node> node = Names::Find<Node> (nodeName); |
|
188 return Install (node); |
|
189 } |
|
190 |
|
191 NetDeviceContainer |
184 CsmaHelper::Install (Ptr<Node> node, Ptr<CsmaChannel> channel) const |
192 CsmaHelper::Install (Ptr<Node> node, Ptr<CsmaChannel> channel) const |
185 { |
193 { |
|
194 return NetDeviceContainer (InstallPriv (node, channel)); |
|
195 } |
|
196 |
|
197 NetDeviceContainer |
|
198 CsmaHelper::Install (Ptr<Node> node, std::string channelName) const |
|
199 { |
|
200 Ptr<CsmaChannel> channel = Names::Find<CsmaChannel> (channelName); |
|
201 return NetDeviceContainer (InstallPriv (node, channel)); |
|
202 } |
|
203 |
|
204 NetDeviceContainer |
|
205 CsmaHelper::Install (std::string nodeName, Ptr<CsmaChannel> channel) const |
|
206 { |
|
207 Ptr<Node> node = Names::Find<Node> (nodeName); |
|
208 return NetDeviceContainer (InstallPriv (node, channel)); |
|
209 } |
|
210 |
|
211 NetDeviceContainer |
|
212 CsmaHelper::Install (std::string nodeName, std::string channelName) const |
|
213 { |
|
214 Ptr<Node> node = Names::Find<Node> (nodeName); |
|
215 Ptr<CsmaChannel> channel = Names::Find<CsmaChannel> (channelName); |
186 return NetDeviceContainer (InstallPriv (node, channel)); |
216 return NetDeviceContainer (InstallPriv (node, channel)); |
187 } |
217 } |
188 |
218 |
189 NetDeviceContainer |
219 NetDeviceContainer |
190 CsmaHelper::Install (const NodeContainer &c) const |
220 CsmaHelper::Install (const NodeContainer &c) const |
203 { |
233 { |
204 devs.Add (InstallPriv (*i, channel)); |
234 devs.Add (InstallPriv (*i, channel)); |
205 } |
235 } |
206 |
236 |
207 return devs; |
237 return devs; |
|
238 } |
|
239 |
|
240 NetDeviceContainer |
|
241 CsmaHelper::Install (const NodeContainer &c, std::string channelName) const |
|
242 { |
|
243 Ptr<CsmaChannel> channel = Names::Find<CsmaChannel> (channelName); |
|
244 return Install (c, channel); |
208 } |
245 } |
209 |
246 |
210 Ptr<NetDevice> |
247 Ptr<NetDevice> |
211 CsmaHelper::InstallPriv (Ptr<Node> node, Ptr<CsmaChannel> channel) const |
248 CsmaHelper::InstallPriv (Ptr<Node> node, Ptr<CsmaChannel> channel) const |
212 { |
249 { |
232 spokeDevices.Add (nd.Get (1)); |
269 spokeDevices.Add (nd.Get (1)); |
233 } |
270 } |
234 } |
271 } |
235 |
272 |
236 void |
273 void |
|
274 CsmaHelper::InstallStar (std::string hubName, NodeContainer spokes, |
|
275 NetDeviceContainer& hubDevices, NetDeviceContainer& spokeDevices) |
|
276 { |
|
277 Ptr<Node> hub = Names::Find<Node> (hubName); |
|
278 InstallStar (hub, spokes, hubDevices, spokeDevices); |
|
279 } |
|
280 |
|
281 void |
237 CsmaHelper::EnqueueEvent (Ptr<PcapWriter> writer, Ptr<const Packet> packet) |
282 CsmaHelper::EnqueueEvent (Ptr<PcapWriter> writer, Ptr<const Packet> packet) |
238 { |
283 { |
239 writer->WritePacket (packet); |
284 writer->WritePacket (packet); |
240 } |
285 } |
241 void |
286 void |