34 enum class ItemState {
44 std::string filename_local;
45 std::string filename_remote;
52 std::vector<ItemInfo> items;
54 enum class UpdateState { NO, REQUIRED, OPTIONAL };
56 UpdateState pool_info_needs_update = UpdateState::NO;
57 UpdateState layer_help_needs_update = UpdateState::NO;
58 UpdateState tables_needs_update = UpdateState::NO;
60 bool can_update()
const;
62 std::string get_brief()
const override;
68 PoolStatusProviderBase(
const std::string &bp);
71 virtual void check_for_updates() = 0;
72 virtual ~PoolStatusProviderBase();
76 const std::filesystem::path base_path;
77 virtual void worker() = 0;
78 void worker_wrapper();
79 std::unique_ptr<PoolStatusBase> pool_status_thread;
81 Glib::Dispatcher dispatcher;
88 std::unique_ptr<PoolStatusBase> pool_status;
92class PoolStatusProviderPoolManager :
public PoolStatusProviderBase {
94 PoolStatusProviderPoolManager(
const std::string &bp);
96 void check_for_updates()
override;
97 ~PoolStatusProviderPoolManager();
100 const std::filesystem::path remote_path;
101 std::optional<PoolStatusPoolManager> st_update;
102 bool do_check_updates =
false;
103 void worker()
override;
104 void reset()
override;