36 void setupImpl()
override;
38 std::string getDatabaseFilename()
const override;
39 std::string getAdditionalParameters()
const override;
42 const uint16_t fanout;
43 const solanet::UUID own_uuid;
46 const uint32_t own_level;
47 const uint32_t own_number;
48 const ns3::Ptr<NatterApplication> app;
49 const uint32_t container_index;
52 void scheduleEvents();
53 uint64_t getNumberOfNodes()
const;
55 void scheduleEvent(
const Join &step, ns3::Time ¤t_time);
56 void scheduleEvent(
const Publish &step, ns3::Time ¤t_time);
58 void joinTopic(
int number_nodes);
59 void publishRandom(uint32_t message_size);
60 void publish(uint32_t message_size, uint32_t publishing_node);
62 NodeInfo getNodeInfo(uint32_t index)
const;
67 void addPeer(uint32_t other_id,
const NodeInfo &info);
68 void connectParent(
const NodeInfo &info);
69 std::set<uint32_t> connectChildren(
const NodeInfo &info);
70 std::set<uint32_t> connectNeighbors(
const NodeInfo &info);
71 void connectAdjacents(
const NodeInfo &info,
const std::vector<uint32_t> &lin_proj);
72 void connectRoutingTableNeighborChildren(
const NodeInfo &info,
const std::set<uint32_t> &children,
73 const std::set<uint32_t> &neighbors);
76 ns3::Ptr<NatterApplication> getApplication(uint32_t
id)
const;
77 void removeAllLinks(uint32_t
id);
80 ns3::NodeContainer nodes_;
84 const std::string topic_ =
"TOPIC1";