Helper class used to assign positions and mobility models to nodes for a group mobility configuration. More...
#include "group-mobility-helper.h"
Public Member Functions | |
GroupMobilityHelper () | |
Construct a group mobility helper. More... | |
~GroupMobilityHelper () | |
Destroy a group mobility helper. More... | |
int64_t | AssignStreams (NodeContainer c, int64_t stream) |
Assign a fixed random variable stream number to the random variables used by the mobility models on these nodes. More... | |
void | Install (NodeContainer container) |
Install and configure a hierarchical mobility model to all nodes in the container, based on the configured reference and member models. More... | |
void | Install (Ptr< Node > node) |
Install and configure a hierarchical mobility model to the given node, based on the configured reference and member models. More... | |
void | Install (std::string nodeName) |
Install and configure a hierarchical mobility model to the given node, based on the configured reference and member models. More... | |
template<typename... Ts> | |
void | SetMemberMobilityModel (std::string type, Ts &&... args) |
Configure the mobility model which will be installed as the member (child) mobility model during GroupMobilityModel::Install. More... | |
void | SetMemberPositionAllocator (Ptr< PositionAllocator > allocator) |
Set the position allocator which will be used to allocate the initial position of the member mobility models. More... | |
template<typename... Ts> | |
void | SetMemberPositionAllocator (std::string type, Ts &&... args) |
Configure the position allocator which will be used to allocate the initial position of the member mobility models. More... | |
void | SetReferenceMobilityModel (Ptr< MobilityModel > mobility) |
Set the reference mobility model which will be installed as the parent mobility model during GroupMobilityModel::Install. More... | |
template<typename... Ts> | |
void | SetReferenceMobilityModel (std::string type, Ts &&... args) |
Configure the reference mobility model which will be installed as the parent mobility model during GroupMobilityModel::Install. More... | |
void | SetReferencePositionAllocator (Ptr< PositionAllocator > allocator) |
Set the position allocator which will be used to allocate the initial position of the reference mobility model. More... | |
template<typename... Ts> | |
void | SetReferencePositionAllocator (std::string type, Ts &&... args) |
Configure the position allocator which will be used to allocate the initial position of the reference mobility model. More... | |
Private Attributes | |
ObjectFactory | m_memberMobilityFactory |
Object factory to create member mobility models. More... | |
Ptr< PositionAllocator > | m_memberPosition |
Position allocator for use as member position allocator. More... | |
Ptr< MobilityModel > | m_referenceMobility |
Reference mobility model. More... | |
Ptr< PositionAllocator > | m_referencePosition |
Position allocator for use as reference position allocator. More... | |
bool | m_referencePositionSet |
flag for avoiding multiple SetPosition calls on the reference model More... | |
NS_LOG_TEMPLATE_DECLARE | |
the log component More... | |
Helper class used to assign positions and mobility models to nodes for a group mobility configuration.
This helper can be used for group mobility configuration and installation onto a group of nodes, in which there is a reference (parent) mobility model that is the same for all nodes, and similarly configured (but distinct) child mobility models.
Definition at line 47 of file group-mobility-helper.h.
ns3::GroupMobilityHelper::GroupMobilityHelper | ( | ) |
Construct a group mobility helper.
Definition at line 41 of file group-mobility-helper.cc.
ns3::GroupMobilityHelper::~GroupMobilityHelper | ( | ) |
Destroy a group mobility helper.
Definition at line 46 of file group-mobility-helper.cc.
int64_t ns3::GroupMobilityHelper::AssignStreams | ( | NodeContainer | c, |
int64_t | stream | ||
) |
Assign a fixed random variable stream number to the random variables used by the mobility models on these nodes.
Return the number of streams (possibly zero) that have been assigned. The Install() method should have previously been called by the user.
c | NodeContainer of the set of nodes containing the MobilityModels that should be modified to use a fixed stream |
stream | first stream index to use |
Definition at line 111 of file group-mobility-helper.cc.
References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), ns3::Object::GetObject(), third::mobility, and NS_FATAL_ERROR.
void ns3::GroupMobilityHelper::Install | ( | NodeContainer | container | ) |
Install and configure a hierarchical mobility model to all nodes in the container, based on the configured reference and member models.
If position allocators are configured, they will be invoked to set the initial positions.
container | The set of nodes to configure |
Definition at line 102 of file group-mobility-helper.cc.
References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), and Install().
Install and configure a hierarchical mobility model to the given node, based on the configured reference and member models.
If position allocators are configured, they will be invoked to set the initial position.
node | The node to configure |
Definition at line 69 of file group-mobility-helper.cc.
References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), ns3::Object::GetObject(), ns3::ObjectFactory::IsTypeIdSet(), m_memberMobilityFactory, m_memberPosition, m_referenceMobility, m_referencePosition, m_referencePositionSet, NS_ABORT_MSG_IF, NS_ABORT_MSG_UNLESS, NS_LOG_DEBUG, and ns3::MobilityModel::SetPosition().
Referenced by Install().
void ns3::GroupMobilityHelper::Install | ( | std::string | nodeName | ) |
Install and configure a hierarchical mobility model to the given node, based on the configured reference and member models.
If position allocators are configured, they will be invoked to set the initial position.
nodeName | The name of the node to configure |
Definition at line 95 of file group-mobility-helper.cc.
References Install().
void ns3::GroupMobilityHelper::SetMemberMobilityModel | ( | std::string | type, |
Ts &&... | args | ||
) |
Configure the mobility model which will be installed as the member (child) mobility model during GroupMobilityModel::Install.
Calls to MobilityHelper::Install will create an instance of a matching mobility model for each node.
Ts | [deduced] Argument types |
type | the type of mobility model to use. | |
[in] | args | Name and AttributeValue pairs to set. |
Definition at line 231 of file group-mobility-helper.h.
References check-style-clang-format::args, m_memberMobilityFactory, NS_LOG_FUNCTION, ns3::ObjectFactory::Set(), ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.
void ns3::GroupMobilityHelper::SetMemberPositionAllocator | ( | Ptr< PositionAllocator > | allocator | ) |
Set the position allocator which will be used to allocate the initial position of the member mobility models.
allocator | allocate initial member mobility model positions |
Definition at line 57 of file group-mobility-helper.cc.
References m_memberPosition.
void ns3::GroupMobilityHelper::SetMemberPositionAllocator | ( | std::string | type, |
Ts &&... | args | ||
) |
Configure the position allocator which will be used to allocate the initial position of the member mobility models.
Ts | [deduced] Argument types |
type | the type of position allocator to use. | |
[in] | args | Name and AttributeValue pairs to set. |
Definition at line 212 of file group-mobility-helper.h.
References check-style-clang-format::args, ns3::ObjectFactory::Create(), ns3::Object::GetObject(), m_memberPosition, NS_ABORT_MSG_IF, and check-style-clang-format::type.
void ns3::GroupMobilityHelper::SetReferenceMobilityModel | ( | Ptr< MobilityModel > | mobility | ) |
Set the reference mobility model which will be installed as the parent mobility model during GroupMobilityModel::Install.
mobility | reference mobility model |
Definition at line 63 of file group-mobility-helper.cc.
References m_referenceMobility, and third::mobility.
void ns3::GroupMobilityHelper::SetReferenceMobilityModel | ( | std::string | type, |
Ts &&... | args | ||
) |
Configure the reference mobility model which will be installed as the parent mobility model during GroupMobilityModel::Install.
Ts | [deduced] Argument types |
type | the type of mobility model to use. | |
[in] | args | Name and AttributeValue pairs to set. |
Definition at line 221 of file group-mobility-helper.h.
References check-style-clang-format::args, ns3::ObjectFactory::Create(), ns3::Object::GetObject(), m_referenceMobility, NS_ABORT_MSG_IF, NS_LOG_FUNCTION, and check-style-clang-format::type.
void ns3::GroupMobilityHelper::SetReferencePositionAllocator | ( | Ptr< PositionAllocator > | allocator | ) |
Set the position allocator which will be used to allocate the initial position of the reference mobility model.
allocator | allocate initial reference mobility model position |
Definition at line 51 of file group-mobility-helper.cc.
References m_referencePosition.
void ns3::GroupMobilityHelper::SetReferencePositionAllocator | ( | std::string | type, |
Ts &&... | args | ||
) |
Configure the position allocator which will be used to allocate the initial position of the reference mobility model.
Ts | [deduced] Argument types |
type | the type of position allocator to use. | |
[in] | args | Name and AttributeValue pairs to set. |
Definition at line 203 of file group-mobility-helper.h.
References check-style-clang-format::args, ns3::ObjectFactory::Create(), ns3::Object::GetObject(), m_referencePosition, NS_ABORT_MSG_IF, and check-style-clang-format::type.
|
private |
Object factory to create member mobility models.
Definition at line 192 of file group-mobility-helper.h.
Referenced by Install(), and SetMemberMobilityModel().
|
private |
Position allocator for use as member position allocator.
Definition at line 194 of file group-mobility-helper.h.
Referenced by Install(), and SetMemberPositionAllocator().
|
private |
Reference mobility model.
Definition at line 189 of file group-mobility-helper.h.
Referenced by Install(), and SetReferenceMobilityModel().
|
private |
Position allocator for use as reference position allocator.
Definition at line 191 of file group-mobility-helper.h.
Referenced by Install(), and SetReferencePositionAllocator().
|
private |
flag for avoiding multiple SetPosition calls on the reference model
Definition at line 187 of file group-mobility-helper.h.
Referenced by Install().
|
private |
the log component
Definition at line 185 of file group-mobility-helper.h.