clboss/Boss/Mod/ChannelCandidateInvestigator
ZmnSCPxj jxPCSnmZ ef17546c1a
configure.ac: Enable C++20.
This introduces a number of changes:

* We can no longer implicitly capture `this` in `[=]() { ... }`,
  we have to explicitly capture it: `[=, this]() { ... }`.
* We added a newer version of the `AX_CXX_COMPILE_STDCXX` macro as
  the stable Debian does not have the latest version yet, and it is
  the latest version that has support for C++20.
2026-01-21 11:40:01 -08:00
..
Gumshoe.cpp Boss/Mod/ChannelCandidateInvestigator/Gumshoe.cpp: Implement gumshoe submodule. 2020-09-13 09:28:09 +08:00
Gumshoe.hpp Boss/Mod/ChannelCandidateInvestigator/Gumshoe.cpp: Implement gumshoe submodule. 2020-09-13 09:28:09 +08:00
Janitor.cpp Boss/Msg/ReqRespTraits.hpp: Use a traits class for requests and response. 2023-07-11 20:57:51 +08:00
Janitor.hpp Boss/Mod/ChannelCandidateInvestigator/Janitor.cpp: New sub-module to filter candidates by dowsing results. 2022-04-21 12:45:29 +08:00
Main.cpp Boss/Mod/ChannelCandidateInvestigator/Janitor.cpp: New sub-module to filter candidates by dowsing results. 2022-04-21 12:45:29 +08:00
Main.hpp Boss/Mod/ChannelCandidateInvestigator/Janitor.cpp: New sub-module to filter candidates by dowsing results. 2022-04-21 12:45:29 +08:00
Manager.cpp configure.ac: Enable C++20. 2026-01-21 11:40:01 -08:00
Manager.hpp Boss/Mod/ChannelCandidateInvestigator/Janitor.cpp: New sub-module to filter candidates by dowsing results. 2022-04-21 12:45:29 +08:00
README.md Boss/Mod/ChannelCandidateInvestigator/: Start investigator for channel candidates. 2020-09-12 23:15:53 +08:00
Secretary.cpp Boss/Mod/ChannelCandidateInvestigator/Janitor.cpp: New sub-module to filter candidates by dowsing results. 2022-04-21 12:45:29 +08:00
Secretary.hpp Boss/Mod/ChannelCandidateInvestigator/Janitor.cpp: New sub-module to filter candidates by dowsing results. 2022-04-21 12:45:29 +08:00

The ChannelCandidateInvestigator is a module which waits for ProposeChannelCandidates and puts them in persistent storage.

Every random-hour, we investigate up to some number of candidates. The gumshoe tries to connect to the candidates.

If the candidate is not reachable, we decrement its score by 1. If the candidate is reachable, we increment its score by 1. If the score drops too low, we stop investigating it and remove it from our table.

New candidates start with a score of 0.

When there are few positive/zero-scored candidates, we SolicitChannelCandidates to trigger other modules.

The sub-modules are:

  • Main - contains the other sub-modules.
  • Secretary - handles queries and updates to the database.
  • Gumshoe - handles checking the candidates.
  • Manager - operates the Secretary and Gumshoe, and does most of the bus talking.