MCPcopy Create free account
hub / github.com/aria2/aria2 / startup

Method startup

src/DHTBucketRefreshTask.cc:54–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52DHTBucketRefreshTask::~DHTBucketRefreshTask() = default;
53
54void DHTBucketRefreshTask::startup()
55{
56 std::vector<std::shared_ptr<DHTBucket>> buckets;
57 getRoutingTable()->getBuckets(buckets);
58 for (auto& b : buckets) {
59 if (!forceRefresh_ && !b->needsRefresh()) {
60 continue;
61 }
62 b->notifyUpdate();
63 unsigned char targetID[DHT_ID_LENGTH];
64 b->getRandomNodeID(targetID);
65 auto task = std::make_shared<DHTNodeLookupTask>(targetID);
66 task->setRoutingTable(getRoutingTable());
67 task->setMessageDispatcher(getMessageDispatcher());
68 task->setMessageFactory(getMessageFactory());
69 task->setTaskQueue(getTaskQueue());
70 task->setLocalNode(getLocalNode());
71
72 A2_LOG_INFO(fmt("Dispating bucket refresh. targetID=%s",
73 util::toHex(targetID, DHT_ID_LENGTH).c_str()));
74 getTaskQueue()->addPeriodicTask1(task);
75 }
76 setFinished(true);
77}
78
79void DHTBucketRefreshTask::setForceRefresh(bool forceRefresh)
80{

Callers

nothing calls this directly

Calls 12

fmtFunction · 0.85
toHexFunction · 0.85
getBucketsMethod · 0.80
needsRefreshMethod · 0.80
getRandomNodeIDMethod · 0.80
notifyUpdateMethod · 0.45
setRoutingTableMethod · 0.45
setMessageDispatcherMethod · 0.45
setMessageFactoryMethod · 0.45
setTaskQueueMethod · 0.45
setLocalNodeMethod · 0.45
addPeriodicTask1Method · 0.45

Tested by

no test coverage detected