Remove need for friend function declarations in container_info_component

This commit is contained in:
Dimitrios Siganos 2022-01-24 20:05:48 +00:00
commit 07f0f91f1d
5 changed files with 11 additions and 14 deletions

View file

@ -150,12 +150,12 @@ void nano::election_scheduler::run ()
}
}
std::unique_ptr<nano::container_info_component> nano::collect_container_info (election_scheduler & election_scheduler, std::string const & name)
std::unique_ptr<nano::container_info_component> nano::election_scheduler::collect_container_info (std::string const & name)
{
nano::unique_lock<nano::mutex> lock{ election_scheduler.mutex };
nano::unique_lock<nano::mutex> lock{ mutex };
auto composite = std::make_unique<container_info_composite> (name);
composite->add_component (std::make_unique<container_info_leaf> (container_info{ "manual_queue", election_scheduler.manual_queue.size (), sizeof (decltype (election_scheduler.manual_queue)::value_type) }));
composite->add_component (collect_container_info (election_scheduler.priority, "priority"));
composite->add_component (std::make_unique<container_info_leaf> (container_info{ "manual_queue", manual_queue.size (), sizeof (decltype (manual_queue)::value_type) }));
composite->add_component (priority.collect_container_info ("priority"));
return composite;
}

View file

@ -32,6 +32,7 @@ public:
std::size_t size () const;
bool empty () const;
std::size_t priority_queue_size () const;
std::unique_ptr<container_info_component> collect_container_info (std::string const &);
private:
void run ();
@ -46,8 +47,5 @@ private:
nano::condition_variable condition;
mutable nano::mutex mutex;
std::thread thread;
friend std::unique_ptr<container_info_component> collect_container_info (election_scheduler &, std::string const &);
};
std::unique_ptr<container_info_component> collect_container_info (election_scheduler & election_scheduler, std::string const & name);
}
}

View file

@ -555,7 +555,7 @@ std::unique_ptr<nano::container_info_component> nano::collect_container_info (no
composite->add_component (collect_container_info (node.confirmation_height_processor, "confirmation_height_processor"));
composite->add_component (collect_container_info (node.distributed_work, "distributed_work"));
composite->add_component (collect_container_info (node.aggregator, "request_aggregator"));
composite->add_component (collect_container_info (node.scheduler, "election_scheduler"));
composite->add_component (node.scheduler.collect_container_info ("election_scheduler"));
return composite;
}

View file

@ -130,12 +130,12 @@ void nano::prioritization::dump ()
std::cerr << "current: " << std::to_string (*current) << '\n';
}
std::unique_ptr<nano::container_info_component> nano::collect_container_info (prioritization & prioritization, std::string const & name)
std::unique_ptr<nano::container_info_component> nano::prioritization::collect_container_info (std::string const & name)
{
auto composite = std::make_unique<container_info_composite> (name);
for (auto i = 0; i < prioritization.buckets.size (); ++i)
for (auto i = 0; i < buckets.size (); ++i)
{
auto const & bucket = prioritization.buckets[i];
auto const & bucket = buckets[i];
composite->add_component (std::make_unique<container_info_leaf> (container_info{ std::to_string (i), bucket.size (), 0 }));
}
return composite;

View file

@ -42,7 +42,6 @@ public:
void dump ();
uint64_t const maximum;
friend std::unique_ptr<container_info_component> collect_container_info (prioritization &, std::string const &);
std::unique_ptr<nano::container_info_component> collect_container_info (std::string const &);
};
std::unique_ptr<container_info_component> collect_container_info (prioritization & prioritization, std::string const & name);
}