mobility: Allow AssignStreams after construction for SteadyStateRwpMobility
The SteadyStateRandomWaypointMobilityModel should support AssignStreams() after object construction, but prior to this patch, it would cause a segmentation fault until after initialization. The initial benefit is the prevention of test suite failures due to random stream assignment.
This commit is contained in:
@@ -95,6 +95,7 @@ SteadyStateRandomWaypointMobilityModel::SteadyStateRandomWaypointMobilityModel (
|
||||
m_u_r = CreateObject<UniformRandomVariable> ();
|
||||
m_x = CreateObject<UniformRandomVariable> ();
|
||||
m_y = CreateObject<UniformRandomVariable> ();
|
||||
m_position = CreateObject<RandomBoxPositionAllocator> ();
|
||||
}
|
||||
|
||||
void
|
||||
@@ -115,7 +116,6 @@ SteadyStateRandomWaypointMobilityModel::DoInitializePrivate (void)
|
||||
m_speed->SetAttribute ("Max", DoubleValue (m_maxSpeed));
|
||||
NS_ASSERT (m_minX < m_maxX);
|
||||
NS_ASSERT (m_minY < m_maxY);
|
||||
m_position = CreateObject<RandomBoxPositionAllocator> ();
|
||||
m_x->SetAttribute ("Min", DoubleValue (m_minX));
|
||||
m_x->SetAttribute ("Max", DoubleValue (m_maxX));
|
||||
m_y->SetAttribute ("Min", DoubleValue (m_minY));
|
||||
|
||||
@@ -82,7 +82,7 @@ SteadyStateRandomWaypointTest::DoRun (void)
|
||||
{
|
||||
// Create a new mobility model.
|
||||
Ptr<MobilityModel> model = mobilityFactory.Create ()->GetObject<MobilityModel> ();
|
||||
|
||||
model->AssignStreams (100 * (i + 1));
|
||||
// Add this mobility model to the stack.
|
||||
mobilityStack.push_back (model);
|
||||
Simulator::Schedule (Seconds (0.0), &Object::Initialize, model);
|
||||
|
||||
Reference in New Issue
Block a user