Index: src/applications/helper/cbr-helper.cc |
=================================================================== |
new file mode 100755 |
--- /dev/null |
+++ b/src/applications/helper/cbr-helper.cc |
@@ -0,0 +1,88 @@ |
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
+/* |
+ * Copyright (c) 2013 Magister Solutions Ltd |
+ * |
+ * 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: Sami Rantanen <sami.rantanen@magister.fi> |
+ */ |
+ |
+#include "ns3/inet-socket-address.h" |
+#include "ns3/packet-socket-address.h" |
+#include "ns3/string.h" |
+#include "ns3/data-rate.h" |
+#include "ns3/uinteger.h" |
+#include "ns3/names.h" |
+#include "ns3/random-variable-stream.h" |
+#include "cbr-helper.h" |
+ |
+ |
+namespace ns3 { |
+ |
+CbrHelper::CbrHelper (std::string protocol, Address address) |
+{ |
+ m_factory.SetTypeId ("ns3::CbrApplication"); |
+ m_factory.Set ("Protocol", StringValue (protocol)); |
+ m_factory.Set ("Remote", AddressValue (address)); |
+} |
+ |
+void |
+CbrHelper::SetAttribute (std::string name, const AttributeValue &value) |
+{ |
+ m_factory.Set (name, value); |
+} |
+ |
+ApplicationContainer |
+CbrHelper::Install (Ptr<Node> node) const |
+{ |
+ return ApplicationContainer (InstallPriv (node)); |
+} |
+ |
+ApplicationContainer |
+CbrHelper::Install (std::string nodeName) const |
+{ |
+ Ptr<Node> node = Names::Find<Node> (nodeName); |
+ return ApplicationContainer (InstallPriv (node)); |
+} |
+ |
+ApplicationContainer |
+CbrHelper::Install (NodeContainer c) const |
+{ |
+ ApplicationContainer apps; |
+ for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i) |
+ { |
+ apps.Add (InstallPriv (*i)); |
+ } |
+ |
+ return apps; |
+} |
+ |
+Ptr<Application> |
+CbrHelper::InstallPriv (Ptr<Node> node) const |
+{ |
+ Ptr<Application> app = m_factory.Create<Application> (); |
+ |
+ node->AddApplication (app); |
+ |
+ return app; |
+} |
+ |
+void |
+CbrHelper::SetConstantTraffic (Time interval, uint32_t packetSize) |
+{ |
+ m_factory.Set ("Interval", TimeValue (interval)); |
+ m_factory.Set ("PacketSize", UintegerValue (packetSize)); |
+} |
+ |
+} // namespace ns3 |