mirror of
https://github.com/ZmnSCPxj/clboss.git
synced 2026-08-13 12:33:20 +02:00
36 lines
947 B
C++
36 lines
947 B
C++
#ifndef BOSS_MOD_CHANNELFINDERBYPOPULARITY_HPP
|
|
#define BOSS_MOD_CHANNELFINDERBYPOPULARITY_HPP
|
|
|
|
#include<memory>
|
|
|
|
namespace Boss { namespace Mod { class Waiter; }}
|
|
namespace S { class Bus; }
|
|
|
|
namespace Boss { namespace Mod {
|
|
|
|
/** class Boss::Mod::ChannelFinderByPopularity
|
|
*
|
|
* @brief module to find channel candidates by popularity.
|
|
*
|
|
* @desc we do not, in fact, propose the popular candidates.
|
|
* Instead, after locating some popular nodes, we select
|
|
* one of *its* peers as the proposal, with the popular
|
|
* node as the patron.
|
|
*/
|
|
class ChannelFinderByPopularity {
|
|
private:
|
|
class Impl;
|
|
std::unique_ptr<Impl> pimpl;
|
|
|
|
public:
|
|
ChannelFinderByPopularity() =delete;
|
|
ChannelFinderByPopularity(ChannelFinderByPopularity const&) =delete;
|
|
|
|
ChannelFinderByPopularity(S::Bus&, Boss::Mod::Waiter&);
|
|
ChannelFinderByPopularity(ChannelFinderByPopularity&&);
|
|
~ChannelFinderByPopularity();
|
|
};
|
|
|
|
}}
|
|
|
|
#endif /* BOSS_MOD_CHANNELFINDERBYPOPULARITY_HPP */
|