make core/helper directory; move random-stream helper code there
authorTom Henderson <tomh@tomh.org>
Tue, 18 Jun 2013 09:46:32 -0700
changeset 9838 a8eaa0a01106
parent 9837 9981985e3b3b
child 9839 7bcd513dc6a2
make core/helper directory; move random-stream helper code there
src/core/helper/random-variable-stream-helper.cc
src/core/helper/random-variable-stream-helper.h
src/core/model/random-variable-stream-helper.cc
src/core/model/random-variable-stream-helper.h
src/core/wscript
--- /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':