23#ifndef CLICK_INTERNET_STACK_HELPER_H
24#define CLICK_INTERNET_STACK_HELPER_H
26#include "ns3/internet-trace-helper.h"
27#include "ns3/ipv4-l3-protocol.h"
28#include "ns3/ipv6-l3-protocol.h"
29#include "ns3/net-device-container.h"
30#include "ns3/node-container.h"
31#include "ns3/object-factory.h"
32#include "ns3/packet.h"
41class Ipv4RoutingHelper;
50class ClickInternetStackHelper :
public PcapHelperForIpv4,
public AsciiTraceHelperForIpv4
56 ClickInternetStackHelper();
61 ~ClickInternetStackHelper()
override;
62 ClickInternetStackHelper(
const ClickInternetStackHelper&);
63 ClickInternetStackHelper& operator=(
const ClickInternetStackHelper& o);
77 void Install(std::string nodeName)
const;
86 void Install(Ptr<Node> node)
const;
97 void Install(NodeContainer c)
const;
102 void InstallAll()
const;
109 void SetClickFile(NodeContainer c, std::string clickfile);
116 void SetClickFile(Ptr<Node> node, std::string clickfile);
123 void SetDefines(NodeContainer c, std::map<std::string, std::string> defines);
130 void SetDefines(Ptr<Node> node, std::map<std::string, std::string> defines);
137 void SetRoutingTableElement(NodeContainer c, std::string rt);
144 void SetRoutingTableElement(Ptr<Node> node, std::string rt);
154 void EnablePcapIpv4Internal(std::string prefix,
157 bool explicitFilename)
override;
168 void EnableAsciiIpv4Internal(Ptr<OutputStreamWrapper> stream,
172 bool explicitFilename)
override;
176 static void CreateAndAggregateObjectFromTypeId(Ptr<Node> node,
const std::string typeId);
178 static void Cleanup();
180 bool PcapHooked(Ptr<Ipv4> ipv4);
182 bool AsciiHooked(Ptr<Ipv4> ipv4);
192 std::map<Ptr<Node>, std::string> m_nodeToClickFileMap;
197 std::map<Ptr<Node>, std::map<std::string, std::string>> m_nodeToDefinesMap;
202 std::map<Ptr<Node>, std::string> m_nodeToRoutingTableElementMap;
void Reset()
Reset the initial value of every attribute as well as the value of every global to what they were bef...
Every class exported by the ns3 library is enclosed in the ns3 namespace.