75 lines
2.0 KiB
C++
75 lines
2.0 KiB
C++
#ifndef V4PING_HELPER_H
|
|
#define V4PING_HELPER_H
|
|
|
|
#include "node-container.h"
|
|
#include "application-container.h"
|
|
#include "ns3/object-factory.h"
|
|
|
|
namespace ns3 {
|
|
|
|
/**
|
|
* \brief create a pinger application and associate it to a node
|
|
*
|
|
* This class creates one or multiple instances of ns3::V4Ping and associates
|
|
* it/them to one/multiple node(s).
|
|
*/
|
|
class V4PingHelper
|
|
{
|
|
public:
|
|
/**
|
|
* Create a V4PingHelper which is used to make life easier for people wanting
|
|
* to use ping Applications.
|
|
*
|
|
* \param remote The address which should be pinged
|
|
*/
|
|
V4PingHelper (Ipv4Address remote);
|
|
|
|
/**
|
|
* Install a pinger application on each Node in the provided NodeContainer.
|
|
*
|
|
* \param nodes The NodeContainer containing all of the nodes to get a V4Ping
|
|
* application.
|
|
*
|
|
* \returns A list of pinger applications, one for each input node
|
|
*/
|
|
ApplicationContainer Install (NodeContainer nodes) const;
|
|
|
|
/**
|
|
* Install a pinger application on the provided Node. The Node is specified
|
|
* directly by a Ptr<Node>
|
|
*
|
|
* \param node The node to install the V4PingApplication on.
|
|
*
|
|
* \returns An ApplicationContainer holding the pinger application created.
|
|
*/
|
|
ApplicationContainer Install (Ptr<Node> node) const;
|
|
|
|
/**
|
|
* Install a pinger application on the provided Node. The Node is specified
|
|
* by a string that must have previosly been associated with a Node using the
|
|
* Object Name Service.
|
|
*
|
|
* \param nodeName The node to install the V4PingApplication on.
|
|
*
|
|
* \returns An ApplicationContainer holding the pinger application created.
|
|
*/
|
|
ApplicationContainer Install (std::string nodeName) const;
|
|
|
|
/**
|
|
* \brief Configure ping applications attribute
|
|
* \param name attribute's name
|
|
* \param value attribute's value
|
|
*/
|
|
void SetAttribute (std::string name, const AttributeValue &value);
|
|
private:
|
|
/**
|
|
* \internal
|
|
*/
|
|
Ptr<Application> InstallPriv (Ptr<Node> node) const;
|
|
ObjectFactory m_factory;
|
|
};
|
|
|
|
} // namespace ns3
|
|
|
|
#endif /* V4PING_HELPER_H */
|