--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/core/helper/random-variable-stream-helper.cc Tue Jun 18 09:46:32 2013 -0700
@@ -0,0 +1,46 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2012 University of Washington
+ *
+ * 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
+ *
+ */
+#include "ns3/random-variable-stream.h"
+#include "ns3/config.h"
+#include "ns3/pointer.h"
+#include "ns3/log.h"
+#include "ns3/assert.h"
+#include "random-variable-stream-helper.h"
+
+NS_LOG_COMPONENT_DEFINE ("RandomVariableStreamHelper");
+
+namespace ns3 {
+
+int64_t RandomVariableStreamHelper::AssignStreams (std::string path, int64_t stream)
+{
+ NS_LOG_FUNCTION_NOARGS ();
+ NS_ASSERT (stream >= 0);
+ Config::MatchContainer mc = Config::LookupMatches (path);
+ int64_t i = 0;
+ for (Config::MatchContainer::Iterator mci = mc.Begin (); mci != mc.End (); ++mci, ++i)
+ {
+ PointerValue ptr = mc.Get (i);
+ Ptr<RandomVariableStream> rvs = ptr.Get<RandomVariableStream> ();
+ NS_LOG_DEBUG ("RandomVariableStream found: " << rvs << "; setting stream to " << (stream + i));
+ rvs->SetStream (stream + i);
+ }
+ return i;
+}
+
+} // namespace ns3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/core/helper/random-variable-stream-helper.h Tue Jun 18 09:46:32 2013 -0700
@@ -0,0 +1,65 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2012 University of Washington
+ *
+ * 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
+ *
+ */
+#ifndef RANDOM_VARIABLE_STREAM_HELPER_H
+#define RANDOM_VARIABLE_STREAM_HELPER_H
+
+#include <string>
+
+namespace ns3 {
+
+/**
+ * \brief Helper class for static methods involving RandomVariableStream
+ */
+class RandomVariableStreamHelper
+{
+public:
+ /**
+ * This helper method can be used to configure the stream number for
+ * one or more RNG streams. The path passed in should correspond to
+ * an attribute path in the configuration system. It may contain wildcards
+ * and may ultimately match zero, one, or more than one objects.
+ *
+ * The objects to match are of type PointerValue where the underlying
+ * type is of type Ptr<RandomVariableStream>.
+ *
+ * \code
+ * .AddAttribute ("Speed",
+ * "A random variable used to pick the speed of a random waypoint model.",
+ * StringValue("ns3::UniformRandomVariable[Min=0.3|Max=0.7]"),
+ * MakePointerAccessor (&RandomWaypointMobilityModel::m_speed),
+ * MakePointerChecker<RandomVariableStream> ())
+ *
+ * \endcode
+ *
+ * Usage would look (for node 3) like this:
+ * \code
+ * std::string path ("/$ns3::NodeListPriv/NodeList/3/$ns3::Node/$ns3::RandomWaypointMobilityModel/Speed/$ns3::UniformRandomVariable");
+ * int64_t retVal = RandomVariableStreamHelper::AssignStreams (path, 0);
+ * \endcode
+ *
+ * \return The number of streams set
+ * \param path (possibly wildcarded) path to a RandomVariableStream PointerValue
+ * \param stream stream number to set; must be non-negative
+ */
+ static int64_t AssignStreams (std::string path, int64_t stream);
+};
+
+} // namespace ns3
+
+#endif /* RANDOM_VARIABLE_STREAM_HELPER_H */
--- a/src/core/model/random-variable-stream-helper.cc Sun Jun 16 13:30:41 2013 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2012 University of Washington
- *
- * 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
- *
- */
-#include "random-variable-stream.h"
-#include "random-variable-stream-helper.h"
-#include "config.h"
-#include "pointer.h"
-#include "log.h"
-#include "assert.h"
-
-NS_LOG_COMPONENT_DEFINE ("RandomVariableStreamHelper");
-
-namespace ns3 {
-
-int64_t RandomVariableStreamHelper::AssignStreams (std::string path, int64_t stream)
-{
- NS_LOG_FUNCTION_NOARGS ();
- NS_ASSERT (stream >= 0);
- Config::MatchContainer mc = Config::LookupMatches (path);
- int64_t i = 0;
- for (Config::MatchContainer::Iterator mci = mc.Begin (); mci != mc.End (); ++mci, ++i)
- {
- PointerValue ptr = mc.Get (i);
- Ptr<RandomVariableStream> rvs = ptr.Get<RandomVariableStream> ();
- NS_LOG_DEBUG ("RandomVariableStream found: " << rvs << "; setting stream to " << (stream + i));
- rvs->SetStream (stream + i);
- }
- return i;
-}
-
-} // namespace ns3
--- a/src/core/model/random-variable-stream-helper.h Sun Jun 16 13:30:41 2013 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2012 University of Washington
- *
- * 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
- *
- */
-#ifndef RANDOM_VARIABLE_STREAM_HELPER_H
-#define RANDOM_VARIABLE_STREAM_HELPER_H
-
-#include <string>
-
-namespace ns3 {
-
-/**
- * \brief Helper class for static methods involving RandomVariableStream
- */
-class RandomVariableStreamHelper
-{
-public:
- /**
- * This helper method can be used to configure the stream number for
- * one or more RNG streams. The path passed in should correspond to
- * an attribute path in the configuration system. It may contain wildcards
- * and may ultimately match zero, one, or more than one objects.
- *
- * The objects to match are of type PointerValue where the underlying
- * type is of type Ptr<RandomVariableStream>.
- *
- * \code
- * .AddAttribute ("Speed",
- * "A random variable used to pick the speed of a random waypoint model.",
- * StringValue("ns3::UniformRandomVariable[Min=0.3|Max=0.7]"),
- * MakePointerAccessor (&RandomWaypointMobilityModel::m_speed),
- * MakePointerChecker<RandomVariableStream> ())
- *
- * \endcode
- *
- * Usage would look (for node 3) like this:
- * \code
- * std::string path ("/$ns3::NodeListPriv/NodeList/3/$ns3::Node/$ns3::RandomWaypointMobilityModel/Speed/$ns3::UniformRandomVariable");
- * int64_t retVal = RandomVariableStreamHelper::AssignStreams (path, 0);
- * \endcode
- *
- * \return The number of streams set
- * \param path (possibly wildcarded) path to a RandomVariableStream PointerValue
- * \param stream stream number to set; must be non-negative
- */
- static int64_t AssignStreams (std::string path, int64_t stream);
-};
-
-} // namespace ns3
-
-#endif /* RANDOM_VARIABLE_STREAM_HELPER_H */
--- a/src/core/wscript Sun Jun 16 13:30:41 2013 +0200
+++ b/src/core/wscript Tue Jun 18 09:46:32 2013 -0700
@@ -147,6 +147,7 @@
'model/vector.cc',
'model/fatal-impl.cc',
'model/system-path.cc',
+ 'helper/random-variable-stream-helper.cc',
]
core_test = bld.create_ns3_module_test_library('core')
@@ -246,6 +247,7 @@
'model/system-path.h',
'model/unused.h',
'model/math.h',
+ 'helper/random-variable-stream-helper.h',
]
if sys.platform == 'win32':